From 66863b609fe5bdbb46b8634399ea08439a94a9f4 Mon Sep 17 00:00:00 2001 From: Ysopwnable <161784452+N0zoM1z0@users.noreply.github.com> Date: Sat, 10 Oct 2026 14:02:02 +0800 Subject: [PATCH] test(javascript): reuse comparison node fixtures Use the established typed graph fixture constructor while retaining right-hand comparison provenance assertions. Restore the unchanged duplicate-code gate on combined main. Closes #1446. Refs #1434, #1443, #1065. --- .../javascriptApplicationChangeGraph.test.ts | 28 ++++++++----------- .../javascriptApplicationGraph.fixture.ts | 2 +- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/domain/javascript/javascriptApplicationChangeGraph.test.ts b/src/domain/javascript/javascriptApplicationChangeGraph.test.ts index 2bbd653af5..e3c8e13108 100644 --- a/src/domain/javascript/javascriptApplicationChangeGraph.test.ts +++ b/src/domain/javascript/javascriptApplicationChangeGraph.test.ts @@ -3,12 +3,12 @@ import { describe, expect, it } from "vitest"; import { createJavaScriptApplicationEdge, createJavaScriptApplicationGraph, - createJavaScriptApplicationNode, type JavaScriptApplicationGraph, } from "./javascriptApplicationGraph.js"; import { artifactEvidence, completeCoverage, + fixtureNode, } from "./javascriptApplicationGraph.fixture.js"; import { compareJavaScriptApplicationVersions } from "./javascriptApplicationVersionComparison.js"; @@ -22,26 +22,22 @@ const buildGraph = ( changed: number, ): JavaScriptApplicationGraph => { const nodes = ["a", "b", "c", "d"].map((name, index) => - createJavaScriptApplicationNode({ - kind: "javascript-module", - identity: { + fixtureNode( + "javascript-module", + { strategy: "canonical-path", stability: "artifact-version", artifact_sha256: artifactSha, path: `${name}.js`, }, - observations: [ - { - label: `${name}.js`, - properties: { - structural_fingerprint_sha256: digest(index + 1), - structural_fingerprint_algorithm: "fixture", - source_sha256: digest(index === 1 || index === 3 ? changed : 0), - }, - evidence: artifactEvidence(artifactSha, `${name}.js`), - }, - ], - }), + `${name}.js`, + { + structural_fingerprint_sha256: digest(index + 1), + structural_fingerprint_algorithm: "fixture", + source_sha256: digest(index === 1 || index === 3 ? changed : 0), + }, + artifactEvidence(artifactSha, `${name}.js`), + ), ); const [a, b] = nodes; if (a === undefined || b === undefined) diff --git a/src/domain/javascript/javascriptApplicationGraph.fixture.ts b/src/domain/javascript/javascriptApplicationGraph.fixture.ts index 00f7c229ad..3002b822f3 100644 --- a/src/domain/javascript/javascriptApplicationGraph.fixture.ts +++ b/src/domain/javascript/javascriptApplicationGraph.fixture.ts @@ -109,7 +109,7 @@ type FixtureNodeArguments = [ evidence: ApplicationGraphEvidence, ]; -const fixtureNode = ( +export const fixtureNode = ( ...[kind, identity, label, properties, evidence]: FixtureNodeArguments ): FixtureNode => createJavaScriptApplicationNode({