Problem Statement
The app supports dark mode via next-themes with CSS variable switching, but only one component has dark mode test coverage. No systematic verification that all 28+ Radix UI components render correctly in both dark and light themes.
Evidence
Only stream-status-badge.test.tsx exists. No visual regression testing. Theme toggle exists but no automated theme-switching tests.
Impact
Components may have broken contrast, invisible text, or missing borders in dark mode. These issues go undetected until user reports.
Proposed Solution
- Add visual regression tests (Chromatic or Percy) that capture both light and dark mode
- Or add component-level tests that render in both
ThemeProvider modes and verify accessibility
- At minimum, add a test that renders every shadcn/ui component in both themes and checks for console errors
Acceptance Criteria
File Map
app/components/ui/*.test.tsx — dark mode variants
app/components/theme-provider.tsx — may need test wrapper export
Labels: accessibility, enhancement
Priority: Enhancement | Difficulty: Intermediate | Estimated Effort: 2d
Labels: accessibility
Priority: Enhancement | Difficulty: Intermediate | Estimated Effort: 2d
Backlog ID: REPO-050
Problem Statement
The app supports dark mode via
next-themeswith CSS variable switching, but only one component has dark mode test coverage. No systematic verification that all 28+ Radix UI components render correctly in both dark and light themes.Evidence
Only
stream-status-badge.test.tsxexists. No visual regression testing. Theme toggle exists but no automated theme-switching tests.Impact
Components may have broken contrast, invisible text, or missing borders in dark mode. These issues go undetected until user reports.
Proposed Solution
ThemeProvidermodes and verify accessibilityAcceptance Criteria
File Map
app/components/ui/*.test.tsx— dark mode variantsapp/components/theme-provider.tsx— may need test wrapper exportLabels: accessibility, enhancement
Priority: Enhancement | Difficulty: Intermediate | Estimated Effort: 2d
Labels: accessibility
Priority: Enhancement | Difficulty: Intermediate | Estimated Effort: 2d
Backlog ID: REPO-050