feat: version topology graph metadata

This commit is contained in:
赵义仑
2026-06-16 19:00:39 +08:00
parent 5ea50e7288
commit 1324f1882c
5 changed files with 228 additions and 30 deletions

View File

@@ -37,6 +37,20 @@ test("scan captures a state-local inventory without clicking high-risk actions",
assert.equal(graph.elements.some((element) => element.accessibleName === "Delete account"), false);
});
test("graph metadata records generation context and policy versions", async () => {
const graph = await withTempOutput("metadata", (out) => scanUrl({ url: fixturePath, out }));
assert.equal(graph.schemaVersion, "0.2");
assert.equal(graph.metadata.engineVersion, "0.2.0");
assert.equal(graph.metadata.runtimeContext.browserName, "chromium");
assert.equal(graph.metadata.runtimeContext.viewport.width, 1440);
assert.equal(graph.metadata.runtimeContext.viewport.height, 1000);
assert.equal(graph.metadata.riskPolicyVersion, "risk-policy-v0.2");
assert.equal(graph.metadata.locatorScoringVersion, "locator-scoring-v0.2");
assert.equal(typeof graph.metadata.crawlSessionId, "string");
assert.equal(graph.metadata.inputUrl, fixturePath);
assert.equal(typeof graph.metadata.inputFingerprint, "string");
});
test("explore records low-risk edges and keeps high-risk submit actions out of default execution", async () => {
const graph = await withTempOutput("explore", (out) => exploreUrl({ url: fixturePath, maxActions: 8, out }));
assert.equal(graph.edges.some((edge) => edge.riskLevel === "low" && edge.toStateId), true);