diff --git a/packages/c0py-core/tests/fidelity.test.ts b/packages/c0py-core/tests/fidelity.test.ts new file mode 100644 index 0000000..a35db22 --- /dev/null +++ b/packages/c0py-core/tests/fidelity.test.ts @@ -0,0 +1,38 @@ +import { describe, expect, it } from "vitest"; +import { evaluateFidelity } from "../src/verification/fidelity"; + +describe("fidelity release gate", () => { + it("passes a complete clone vector", () => { + expect( + evaluateFidelity({ + assets: 1, + responsiveCoverage: 1, + routeCoverage: 1, + interactionCoverage: 1, + workflowCoverage: 1, + networkContractParity: 1, + accessibilityPass: true, + runtimeErrorCount: 0, + productionBuildPass: true, + }), + ).toEqual({ passed: true, failures: [] }); + }); + + it("fails rather than averaging away missing behavior", () => { + const result = evaluateFidelity({ + geometry: 0.999, + assets: 1, + responsiveCoverage: 1, + routeCoverage: 1, + interactionCoverage: 0.8, + workflowCoverage: 1, + networkContractParity: 1, + accessibilityPass: true, + runtimeErrorCount: 0, + productionBuildPass: true, + }); + + expect(result.passed).toBe(false); + expect(result.failures.join(" ")).toMatch(/interactionCoverage/); + }); +});