import { readFile } from "node:fs/promises"; import path from "node:path"; import { fileURLToPath } from "node:url"; import { describe, expect, it } from "vitest"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const sourcePath = path.join(__dirname, "verify-theme-error-state-baseline.mjs"); async function readRunnerSource() { return readFile(sourcePath, "utf8"); } describe("Theme Error State baseline runner contract", () => { it("writes the baseline health report to the diagnostic artifact path", async () => { const source = await readRunnerSource(); expect(source).toContain(".tc/baselines/theme-error-state/baseline-health.md"); }); it("declares the required non-E2E baseline gates", async () => { const source = await readRunnerSource(); expect(source).toContain('id: "typecheck"'); expect(source).toContain('args: ["run", "typecheck"]'); expect(source).toContain('id: "lint"'); expect(source).toContain('args: ["run", "lint"]'); expect(source).toContain('id: "ci-baseline"'); expect(source).toContain('args: ["scripts/verify-ci-baseline.mjs"]'); expect(source).toContain('id: "vitest-health-readiness"'); expect(source).toContain('"apps/web/app/routes/healthz.test.ts"'); expect(source).toContain('"apps/web/app/routes/readyz.test.ts"'); expect(source).toContain('"apps/web/app/routes/healthcheck.test.ts"'); expect(source).toContain('"apps/web/app/routes/health-readiness.test.ts"'); expect(source).toContain('id: "theme-error-inventory"'); expect(source).toContain('type: "baseline-inventory"'); expect(source).toContain("read-only theme/error surface inventory"); }); it("keeps health/readiness coverage on explicit Vitest file paths", async () => { const source = await readRunnerSource(); expect(source).toMatch(/"exec",\s*\n\s*"vitest",\s*\n\s*"run",\s*\n\s*"apps\/web\/app\/routes\/healthz\.test\.ts"/); expect(source).toContain('"apps/web/app/routes/readyz.test.ts"'); expect(source).not.toMatch(/args:\s*\[[^\]]*"test"[^\]]*\]/s); expect(source).not.toContain("pnpm test"); }); it("renders report result labels used for baseline comparisons", async () => { const source = await readRunnerSource(); expect(source).toContain("- Exitcode: ${result.exitCode}"); expect(source).toContain("- Failure Count: ${result.failureCount}"); expect(source).toContain("- Output Fingerprint: ${result.fingerprint.hash}"); }); });