mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-08-10 17:14:48 +00:00
- Provider filter: Models-this-period sources current.topModels (history days carry empty topModels per provider); StackedBars falls back to a cost-proportional single segment like the Swift menubar - Chart windows align to the CLI (week -7, 30days -30, all = 6 months) and zero-fill a contiguous calendar window; history.daily is sparse and both sides key local YYYY-MM-DD, so lookups are safe (verified on real CLI output) - Custom range threads into Overview panels (chart, models table) and suppresses MTD/projected and vs-last-week comparisons; Compare states that custom dates fall back to the period - usePolled clears errors per attempt and sections show a StaleBanner instead of silently rendering last-good data after a failed refresh - Cache-hit denominator matches the CLI; hero savings relabeled 'Saved by applied fixes' + new 'Saved via local models' line; formatCompact everywhere; Optimize 'Fixes' count matches the rendered list App suite 163/163 (was 147), root 1613/1613.
14 lines
516 B
TypeScript
14 lines
516 B
TypeScript
// @vitest-environment jsdom
|
|
import { render, screen } from '@testing-library/react'
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
import { StaleBanner } from './StaleBanner'
|
|
|
|
describe('StaleBanner', () => {
|
|
it('shows the last-good notice with the error summary', () => {
|
|
render(<StaleBanner error={{ kind: 'nonzero', message: 'codeburn exited 1' }} />)
|
|
|
|
const banner = screen.getByRole('status')
|
|
expect(banner).toHaveTextContent('Refresh failed, showing last good data · codeburn exited 1')
|
|
})
|
|
})
|