Before executing tests, ensure the local environment mirrors production data.
1. Initialize the Application
Action: Run the data processing pipeline (./update_all_data_source.sh).
Action: Navigate to /app, run npm install (if dependencies changed), and start the server with npm run dev.
Verify: The Vite server starts successfully on localhost:5173 without fatal terminal errors.
Validate the visual and structural changes made to the application.
1. Landing Page First-Time Experience
Action: Load the root URL (http://localhost:5173/).
Verify: The new Landing Page renders correctly, without flashing incomplete data.
Verify: Navigation prompts (CTAs) accurately lead the user into the main forecast dashboards.
2. Sidebar Redesign & Navigation
Action: Click through the three main forecast types (Flu Forecasts, COVID-19, RSV).
Verify: The redesigned sidebar clearly distinguishes between different forecast and model types.
Verify: Groupings and labels are logical and easy to read.
Verify: The active view is clearly highlighted in the UI, leaving no ambiguity about which dataset is currently being displayed.
Validate the core functional fixes to how locations are handled across different views.
1. MetroCast to State-Level Mapping (Bug #1 Fix)
Action: Navigate to Flu MetroCast and select a specific city (e.g., Denver, CO).
Action: Click the sidebar to switch to the state-level Flu Forecasts view.
Verify: The UI automatically maps the city up to its parent state and successfully loads the Colorado state data.
Verify: The URL parameter accurately updates to reflect the state code instead of the city.
2. Unsupported State Handling (Bug #2 Fix)
Action: Navigate to COVID-19 Forecasts and select a state that does not have MetroCast data (e.g., New York).
Action: Click the sidebar to switch to Flu MetroCast.
Verify: The application does not crash or throw red console errors.
Verify: The UI gracefully resets to a valid default MetroCast location or clearly prompts the user to select a valid city.
3. Selector UI State (Bug #3 Fix)
Action: Open the location dropdown menu.
Verify: There is no default highlight on a location when nothing has been actively hovered over or selected by the user.
Action: Test keyboard navigation (Up/Down arrows, Enter).
Verify: Keyboard navigation works equitably with mouse clicks
Ensure the UI respects the user's browser history and session.
1. URL State Persistence
Action: Load Flu Forecasts, select Texas, and toggle specific models or scale settings.
Action: Refresh the browser page.
Verify: The UI loads instantly with Texas and all previously toggled models/scales exactly as they were, drawing directly from the URL parameters.
2. Browser Navigation
Action: Navigate from Flu Forecasts (Texas) to RSV Forecasts (Virginia).
Action: Hit the browser's "Back" button.
Verify: The UI successfully returns to the Texas Flu view without requiring a manual refresh.
Browser Check: Perform a quick visual pass of the Sidebar and Location Selector in Chrome, Firefox, and Safari to ensure the Mantine components render consistently.
Mobile Responsiveness: Shrink the browser window to mobile width. Verify the new sidebar collapses appropriately and the location selector remains usable.