fix: align report technique audit evidence
This commit is contained in:
@@ -452,6 +452,40 @@ test("assembled document passes the canonical server parse with a D1 of 12 house
|
||||
);
|
||||
});
|
||||
|
||||
test("technique audit reflects final evidence status and narrative usage", () => {
|
||||
const workflow = pythonStyleChartPayload() as Record<string, unknown>;
|
||||
const machinePacket = workflow.machine_evidence_packet as Record<string, unknown>;
|
||||
const sections = machinePacket.sections as Record<string, Record<string, unknown>>;
|
||||
sections.external_oracle_status.status = "official_blocked";
|
||||
const packet = buildPacket({ workflow });
|
||||
assert.deepEqual(packet.blockedTechniques, []);
|
||||
const output = agentOutput();
|
||||
const blockedRef = packet.evidenceRefs.find((ref) => ref.technique === "D2");
|
||||
assert.ok(blockedRef);
|
||||
output.thematicNarrative[0].evidenceRefs.push(blockedRef.id);
|
||||
const document = assembleReportDocument({
|
||||
reportId: "22222222-2222-4222-8222-222222222222",
|
||||
generatedAt: "2026-08-06T00:00:00.000Z",
|
||||
packet,
|
||||
agentOutput: output,
|
||||
});
|
||||
const auditById = new Map(document.evidenceAppendix.techniqueAudit.map((row) => [row.id, row]));
|
||||
const referencedIds = new Set(document.thematicNarrative.flatMap((section) => section.evidenceRefs));
|
||||
|
||||
assert.ok([...referencedIds].every((id) => auditById.get(id)?.used === true));
|
||||
assert.equal(document.evidenceAppendix.techniqueAudit.find((row) => row.techniqueName === "D1")?.status, "verified");
|
||||
assert.equal(document.evidenceAppendix.techniqueAudit.find((row) => row.techniqueName === "D2")?.status, "blocked");
|
||||
assert.match(
|
||||
document.evidenceAppendix.techniqueAudit.find((row) => row.techniqueName === "D2")?.notes ?? "",
|
||||
/未返回本次计算数据/,
|
||||
);
|
||||
const external = document.evidenceAppendix.techniqueAudit.find(
|
||||
(row) => row.techniqueName === "external_oracle_status",
|
||||
);
|
||||
assert.equal(external?.status, "blocked");
|
||||
assert.match(external?.notes ?? "", /官方外部引擎本次未验证或不可用/);
|
||||
});
|
||||
|
||||
test("D9/D10 charts are omitted when no real divisional houses exist", () => {
|
||||
const workflow = pythonStyleChartPayload() as Record<string, unknown>;
|
||||
const chart = workflow.chart as Record<string, unknown>;
|
||||
|
||||
Reference in New Issue
Block a user