Files
HiveGrid-Wireframes/hivegrid-cloud/scripts/verify-theme-error-state-baseline.test.ts
T

56 lines
2.4 KiB
TypeScript

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}");
});
});