import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { http } from 'msw' import { Route, Routes } from 'react-router-dom' import userEvent from '@testing-library/user-event' import type { ReactNode } from 'react' import { server } from '../../tests/msw/server' import { jsonResponse, paginate } from '../../tests/msw/helpers' import { renderWithProviders, screen, waitFor } from '../../tests/helpers/render' import { seedBearer, clearBearer } from '../../tests/helpers/auth' import { seedFlights } from '../../tests/fixtures/seed_flights' import { opAlice, seedPermissions } from '../../tests/fixtures/seed_users' import { FlightProvider } from './FlightContext' import Header from './Header' // AZ-468 — Header flight-dropdown a11y + Escape handler. // FT-P-30 closed-state a11y — aria-expanded=false, accessible trigger name // FT-P-31 open-state a11y — aria-expanded=true, role=listbox/menu, // aria-activedescendant points to a real id // FT-N-09 Escape close + detach — Escape closes the dropdown and the // document-level Escape handler is removed // (no leakage into other components). // // Production status (today): src/components/Header.tsx renders a plain //