From e26398c49621c9ec9f00f27a82f1a6a774d26574 Mon Sep 17 00:00:00 2001 From: Simon Axelsson Date: Wed, 16 Sep 2026 15:38:28 +0200 Subject: [PATCH] test(core): add fidelity gate coverage --- packages/c0py-core/tests/fidelity.test.ts | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 packages/c0py-core/tests/fidelity.test.ts 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/); + }); +});