test: remove duplicate workflow examples and self assertions

This commit is contained in:
morluto 2026-10-09 21:01:53 +08:00
parent af7a439633
commit d6d1cd2485
16 changed files with 27 additions and 120 deletions

View File

@ -103,16 +103,3 @@ export const SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE = {
};
export { JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE } from "./javascriptExportShapeComparisonExample.js";
/** Full-Evidence compatibility fixture used by pure domain and adapter tests. */
export const JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE = {
application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
seed: TRACE_SEED,
direction: "both" as const,
};
/** Full-Evidence compatibility comparison fixture. */
export const JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE = {
left: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
right: reconciliationEvidence,
};

View File

@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest";
import { traceJavaScriptSemanticsRequestSchema } from "./javascript/applicationWorkflowInputContracts.js";
import { ARTIFACT_TOOL_CONTRACTS } from "./artifactToolContracts.js";
import { JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE } from "./javascript/javascriptApplicationWorkflowExamples.js";
import { JAVASCRIPT_FEATURE_TRACE_EXAMPLE } from "./javascript/javascriptApplicationWorkflowExamples.js";
import {
MANAGED_APPLICATION_GRAPH_EXAMPLE,
MANAGED_MEMBER_COMPARISON_EXAMPLE,
@ -24,7 +24,7 @@ describe("workflow input contracts", () => {
traceJavaScriptSemanticsRequestSchema.safeParse({ query }).success,
).toBe(false);
const evidence = JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE.application;
const evidence = JAVASCRIPT_FEATURE_TRACE_EXAMPLE.application;
expect(
traceJavaScriptSemanticsRequestSchema.safeParse({
application: evidence,

View File

@ -10,8 +10,8 @@ import { afterEach, describe, expect, it } from "vitest";
import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js";
import {
JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE,
JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE,
JAVASCRIPT_FEATURE_TRACE_EXAMPLE,
JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE,
SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE,
} from "../../../src/contracts/javascript/javascriptApplicationWorkflowExamples.js";
import { analyzeJavaScriptApplication } from "../../../src/application/javascript/JavaScriptApplicationService.js";
@ -226,7 +226,7 @@ describe("application workflow CLI parity", () => {
it("accepts inline trace JSON and file-backed comparison JSON", async () => {
const traced = await runCli([
"trace-application-feature",
JSON.stringify(JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE),
JSON.stringify(JAVASCRIPT_FEATURE_TRACE_EXAMPLE),
"--json",
]);
expect(traced).toMatchObject({
@ -258,7 +258,7 @@ describe("application workflow CLI parity", () => {
const comparisonPath = join(root, "comparison.json");
await writeFile(
comparisonPath,
JSON.stringify(JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE),
JSON.stringify(JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE),
);
const compared = await runCli([
"compare-application-versions",
@ -289,7 +289,7 @@ describe("application workflow CLI parity", () => {
"compare-source-to-bundle",
JSON.stringify({
reference: SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE.reference,
application: JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE.application,
application: JAVASCRIPT_FEATURE_TRACE_EXAMPLE.application,
}),
"--json",
]);
@ -445,10 +445,10 @@ describe("application workflow CLI input", () => {
const result = await runCli([
"compare-application-versions",
JSON.stringify({
left: JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE.left
left: JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE.left
.evidence_id,
right:
JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE.right.evidence_id,
JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE.right.evidence_id,
}),
"--json",
]);

View File

@ -104,9 +104,6 @@ it("advertises exact schemas and projects one layout section from retained Evide
parent_evidence_id: parent.evidence_id,
item: { name: { display: ".data" } },
});
expect(parsed.normalized_result).toEqual(
parseEvidence(parsed).normalized_result,
);
expect(session.evidenceById(parsed.evidence_id)).toEqual(
parseEvidence(parsed),
);

View File

@ -3,9 +3,8 @@ import { describe, expect, it } from "vitest";
import type { BinarySession } from "../../../src/application/binary/BinarySession.js";
import {
JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE,
JAVASCRIPT_FEATURE_TRACE_EXAMPLE,
JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE,
JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE,
SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE,
} from "../../../src/contracts/javascript/javascriptApplicationWorkflowExamples.js";
import { createEvidence } from "../../../src/domain/evidence.js";
@ -14,64 +13,6 @@ import {
type ApplicationMcpHarness,
} from "../../fixtures/applicationMcpHarness.js";
async function runInlineEvidenceScenarios(
client: Client,
session: BinarySession,
): Promise<void> {
const traced = await client.callTool({
name: "trace_application_feature",
arguments: JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE,
});
expect(traced.isError).not.toBe(true);
expect(traced.structuredContent).toMatchObject({
normalized_result: {
seed: { kind: "module", value: "renderer.js", match: "exact" },
summary: { matched_seeds: 1, traced_nodes: 1, unknown_facts: 0 },
coverage: {
status: "complete-within-source",
source_graph_status: "complete",
total_seed_matches: 1,
},
},
});
const compared = await client.callTool({
name: "compare_application_versions",
arguments: {
...JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE,
},
});
expect(compared.isError).not.toBe(true);
expect(compared.structuredContent).toMatchObject({
normalized_result: {
summary: { unchanged: 0, added: 2, removed: 0, changed: 1, unknown: 0 },
coverage: {
left_graph_status: "complete",
right_graph_status: "complete",
status: "complete-within-inputs",
},
},
});
const sourceCompared = await client.callTool({
name: "compare_source_to_bundle",
arguments: {
reference: SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE.reference,
application: JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE.application,
},
});
expect(sourceCompared.isError).not.toBe(true);
expect(sourceCompared.structuredContent).toMatchObject({
normalized_result: {
reference: {
root_sha256: SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE.reference.root_sha256,
},
scoring: { algorithm: "rea-source-to-bundle-signals" },
},
});
expect(session.exportEvidenceBundle().records.length).toBeGreaterThan(2);
}
async function runInlineWorkflowScenarios(
harness: ApplicationMcpHarness,
): Promise<void> {
@ -97,15 +38,15 @@ async function runInlineWorkflowScenarios(
const comparedInline = await harness.client.callTool({
name: "compare_application_versions",
arguments: {
...JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE,
...JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE,
},
});
expect(comparedInline).toMatchObject({
structuredContent: {
normalized_result: {
evidence_links: expect.arrayContaining([
JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE.left.evidence_id,
JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE.right.evidence_id,
JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE.left.evidence_id,
JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE.right.evidence_id,
]),
},
},
@ -115,21 +56,21 @@ async function runInlineWorkflowScenarios(
name: "compare_application_versions",
arguments: {
left_evidence_id:
JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE.left.evidence_id,
JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE.left.evidence_id,
right_evidence_id:
JAVASCRIPT_VERSION_COMPARISON_FULL_EVIDENCE_EXAMPLE.right.evidence_id,
JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE.right.evidence_id,
},
});
expect(idsRejected.isError).toBe(true);
const sourceComparedById = await harness.client.callTool({
const sourceCompared = await harness.client.callTool({
name: "compare_source_to_bundle",
arguments: {
...SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE,
},
});
expect(sourceComparedById.isError).not.toBe(true);
expect(sourceComparedById.structuredContent).toMatchObject({
expect(sourceCompared.isError).not.toBe(true);
expect(sourceCompared.structuredContent).toMatchObject({
normalized_result: {
reference: {
root_sha256: SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE.reference.root_sha256,
@ -147,6 +88,9 @@ async function runInlineWorkflowScenarios(
],
},
});
expect(harness.session.exportEvidenceBundle().records.length).toBeGreaterThan(
2,
);
}
async function assertRejectedEvidenceReferences(
@ -197,10 +141,10 @@ async function assertRejectedInlineEvidence(client: Client): Promise<void> {
const duplicateNative = await client.callTool({
name: "trace_application_feature",
arguments: {
...JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE,
...JAVASCRIPT_FEATURE_TRACE_EXAMPLE,
native_observations: [
JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE.application,
JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE.application,
JAVASCRIPT_FEATURE_TRACE_EXAMPLE.application,
JAVASCRIPT_FEATURE_TRACE_EXAMPLE.application,
],
},
});
@ -209,9 +153,9 @@ async function assertRejectedInlineEvidence(client: Client): Promise<void> {
const spoofed = await client.callTool({
name: "trace_application_feature",
arguments: {
...JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE,
...JAVASCRIPT_FEATURE_TRACE_EXAMPLE,
application: {
...JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE.application,
...JAVASCRIPT_FEATURE_TRACE_EXAMPLE.application,
provider: { id: "spoofed", name: "spoofed", version: "1" },
},
},
@ -223,7 +167,6 @@ describe("application workflow MCP parity", () => {
it("traces and compares authenticated graph Evidence in the session", async () => {
const harness = await createApplicationMcpHarness();
try {
await runInlineEvidenceScenarios(harness.client, harness.session);
await runInlineWorkflowScenarios(harness);
await assertRejectedEvidenceReferences(harness.client, harness.session);
await assertRejectedInlineEvidence(harness.client);

View File

@ -65,7 +65,6 @@ it("advertises exact valid schemas and records inline layout without a binary ta
expect(evidence.confidence).toBe("observed");
expect(evidence.subject?.digest.sha256).toBe(value.artifact.sha256);
expect(parsed.normalized_result).toEqual(value);
expect(parsed.normalized_result).toEqual(evidence.normalized_result);
expect(session.evidenceById(evidence.evidence_id)).toEqual(evidence);
const viewed = await client.callTool({
name: "inspect_analysis_view",

View File

@ -67,7 +67,6 @@ it("advertises exact valid schemas and records inline EVM interface evidence wit
expect(evidence.confidence).toBe("inferred");
expect(evidence.subject?.digest.sha256).toBe(value.artifact.sha256);
expect(parsed.normalized_result).toEqual(value);
expect(parsed.normalized_result).toEqual(evidence.normalized_result);
expect(session.evidenceById(evidence.evidence_id)).toEqual(evidence);
expect(
(

View File

@ -46,8 +46,6 @@ it("executes named firmware contracts with inline Evidence and no native binary
expect(response.isError, JSON.stringify(response)).not.toBe(true);
const result = contract.outputSchema.parse(response.structuredContent);
const evidence = parseEvidence(result);
expect(result.normalized_result).toEqual(evidence.normalized_result);
expect(result.evidence_id).toBe(evidence.evidence_id);
expect(evidence.operation).toBe(contract.name);
expect(evidence.raw_result).not.toBeNull();
}

View File

@ -66,8 +66,6 @@ it.skipIf(process.platform !== "linux" || process.arch !== "x64")(
rewrite_level: "standard",
},
});
expect(parsed.normalized_result).toEqual(evidence.normalized_result);
expect(parsed.evidence_id).toBe(evidence.evidence_id);
expect(session.evidenceById(evidence.evidence_id)).toEqual(evidence);
await assertRecoveryCleanup(fixture.launches);
},

View File

@ -65,7 +65,6 @@ it("advertises exact valid schemas and records inline recorded-core evidence wit
expect(evidence.confidence).toBe("observed");
expect(evidence.subject?.digest.sha256).toBe(value.artifact.sha256);
expect(parsed.normalized_result).toEqual(value);
expect(parsed.normalized_result).toEqual(evidence.normalized_result);
expect(session.evidenceById(evidence.evidence_id)).toEqual(evidence);
expect(
(

View File

@ -71,7 +71,6 @@ it("publishes valid SDK schemas and records the named module trace without a bin
},
],
});
expect(parsed.normalized_result).toEqual(evidence.normalized_result);
expect(session.evidenceById(evidence.evidence_id)).toEqual(evidence);
const invalid = await client.callTool({
name: "trace_web_module_imports",

View File

@ -72,7 +72,6 @@ it("publishes valid SDK schemas and retains historical inline Evidence with the
response.structuredContent,
);
const evidence = parseEvidence(parsed);
expect(parsed.normalized_result).toEqual(evidence.normalized_result);
const capture = webNetworkCaptureSchema.parse(parsed.normalized_result);
expect(capture.container.reported).toEqual({
creator: "fixture",

View File

@ -62,7 +62,6 @@ it("advertises actual SDK schemas, instrumentation effects and session-owned inl
response.structuredContent,
);
const evidence = parseEvidence(parsed);
expect(parsed.normalized_result).toEqual(evidence.normalized_result);
expect(session.evidenceById(evidence.evidence_id)).toEqual(evidence);
}
expect(toolContract("observe_web_execution").effects).toMatchObject({

View File

@ -73,7 +73,6 @@ it("publishes valid SDK schemas and records the named module trace without a bin
},
raw_result: { source_map_text: data.sourceMap.text },
});
expect(parsed.normalized_result).toEqual(evidence.normalized_result);
expect(session.evidenceById(evidence.evidence_id)).toEqual(evidence);
const invalid = await client.callTool({
name: "trace_web_source_location",

View File

@ -136,8 +136,6 @@ it("publishes and executes all APK contracts with inline Evidence and no active
expect(validateOutput(response.structuredContent)).toBe(true);
const result = contract.outputSchema.parse(response.structuredContent);
const evidence = parseEvidence(result);
expect(result.normalized_result).toEqual(evidence.normalized_result);
expect(result.evidence_id).toBe(evidence.evidence_id);
expect(evidence.operation).toBe(contract.name);
expect(evidence.raw_result).not.toBeNull();
}

View File

@ -115,14 +115,7 @@ describe("Hopper process cleanup", () => {
[cleanupTimeoutFixturePath, helperPath],
{ encoding: "utf8", timeout: 5_000 },
);
expect(result.status).toBe(0);
const parsed = JSON.parse(result.stdout) as {
readonly returncode: number;
readonly elapsed_ms: number;
};
expect(parsed.returncode).toBe(-9);
expect(parsed.elapsed_ms).toBeGreaterThanOrEqual(1_800);
expect(parsed.elapsed_ms).toBeLessThan(4_000);
expect(result.status, result.stderr).toBe(0);
},
);
});