import { render, screen, waitFor } from "@testing-library/react"; import { describe, expect, it, vi } from "vitest"; import HealthStatusModal from "./HealthStatusModal"; import { apiGetJson } from "../api/client"; vi.mock("../api/client", () => ({ apiGetJson: vi.fn(), })); describe("HealthStatusModal", () => { it("shows authentication diagnostics from /api/health", async () => { const mockedApiGetJson = vi.mocked(apiGetJson); mockedApiGetJson.mockImplementation(async (url: string) => { if (url.startsWith("/api/health")) { return { ok: false, summary: { required_ok: 2, required_total: 3, total_checks: 3 }, checks: [], env: {}, auth: { required: true, enabled: false, issuer: "https://tenant.us.auth0.com/", audience: "", email_claim: "https://masterstelecom.com/email", allowed_domains: ["masterstelecom.com", "verizon.com"], config_error: "AUTH_REQUIRED is enabled but Auth0 config is invalid.", config_details: ["Missing required auth setting: AUTH0_DOMAIN."], config_warnings: ["AUTH0_JWKS_TTL_SECONDS is invalid ('x'); defaulting to 600 seconds."], }, }; } throw new Error("metrics unavailable"); }); render( {}} />); await waitFor(() => { expect(screen.getByText("Authentication")).toBeInTheDocument(); }); expect(screen.getByText("Auth required")).toBeInTheDocument(); expect(screen.getByText("Auth not enabled")).toBeInTheDocument(); expect(screen.getByText("Config details")).toBeInTheDocument(); expect(screen.getByText("Config warnings")).toBeInTheDocument(); expect(screen.getByText(/Missing required auth setting: AUTH0_DOMAIN/i)).toBeInTheDocument(); }); });