import { renderToStaticMarkup } from "react-dom/server"; import { describe, expect, it } from "vitest"; import { fail, type HousekeepingResult, ok, } from "../../../foundation/contracts"; import { SystemAccessPage } from "./access"; import { SystemConfigurationPage } from "./configuration"; import { SystemObservabilityPage } from "./observability"; import { SystemOperationsPage } from "./operations"; const correlationId = "system-pages-test"; type PageCase = { readonly name: string; readonly render: (result?: HousekeepingResult) => string; readonly empty: unknown; readonly partial: unknown; readonly ready: unknown; }; const pageCases: readonly PageCase[] = [ { name: "access", render: (result) => renderToStaticMarkup(), empty: { kind: "permissions", ranks: [], acl: { roles: 0, permissions: 0 }, partialDependencies: [], }, partial: { kind: "permissions", ranks: [{ id: 4, name: "Moderator", level: 4, userCount: 2 }], acl: { roles: 0, permissions: 0 }, partialDependencies: ["acl"], }, ready: { kind: "permissions", ranks: [{ id: 4, name: "Moderator", level: 4, userCount: 2 }], acl: { roles: 3, permissions: 18 }, partialDependencies: [], }, }, { name: "configuration", render: (result) => renderToStaticMarkup( , ), empty: { kind: "settings", settings: [], partialDependencies: [] }, partial: { kind: "emulator", settings: [{ key: "hotel.name", value: "Epic" }], texts: [], textsTotal: 0, partialDependencies: ["emulator-texts"], }, ready: { kind: "settings", settings: [{ key: "hotel.name", value: "Epic" }], partialDependencies: [], }, }, { name: "observability", render: (result) => renderToStaticMarkup( , ), empty: { kind: "logs", metrics: [], rows: [], partialDependencies: [], }, partial: { kind: "devops", health: null, errors: [{ id: "1", primary: "Connection error" }], partialDependencies: ["health"], }, ready: { kind: "analytics", metrics: [{ label: "Online users", value: 12 }], rows: [], partialDependencies: [], }, }, { name: "operations", render: (result) => renderToStaticMarkup(), empty: { kind: "alerts", alerts: [], partialDependencies: [] }, partial: { kind: "command-center", health: null, onlineUsers: { count: 0, users: [] }, maintenance: { enabled: false, message: "", minimumLoginRank: 5, }, partialDependencies: ["health"], }, ready: { kind: "alerts", alerts: [ { id: 7, severity: "warning", type: "emulator", message: "Connection restored", isRead: false, }, ], partialDependencies: [], }, }, ]; describe.each(pageCases)( "System $name page", ({ render, empty, partial, ready }) => { it("renders loading, forbidden, and dependency errors explicitly", () => { expect(render()).toContain('data-housekeeping-state="loading"'); expect( render( fail("FORBIDDEN", "errors.housekeeping.forbidden", correlationId), ), ).toContain('data-housekeeping-state="forbidden"'); expect( render( fail( "DEPENDENCY_UNAVAILABLE", "errors.housekeeping.dependencyUnavailable", correlationId, ), ), ).toContain('data-housekeeping-state="error"'); }); it("renders empty, partial, and ready query results explicitly", () => { expect(render(ok(empty, correlationId))).toContain( 'data-housekeeping-state="empty"', ); expect(render(ok(partial, correlationId))).toContain( 'data-housekeeping-state="partial"', ); expect(render(ok(ready, correlationId))).toContain( 'data-housekeeping-state="ready"', ); }); }, );