test: strengthen integration oracles and verification (#8295)

* test: strengthen integration oracles and verification

* test: bound lifecycle gates and strengthen workflow checks

* test: verify complete paged and extracted results

* test: preserve bytecode and cancellation evidence

* test: strengthen retained evidence and fixture cleanup

* test: require cross-projection bridge identities

* test: retain fixture owners through cleanup failures

* test: verify graph examples and project selectors

* test: tighten provider and lifecycle regressions

* test: consolidate hex coverage and bound cutter cleanup

* test: bound subprocess output waits and strengthen graph checks

* test: check mcp recovery and preserve cleanup owners

* test: verify structured mcp argument failures

* test: preserve artifact cleanup and gdb limit evidence

* test: preserve evidence identities and bound provider gates

* test: retain browser and comparison cleanup owners

* test: bound startup and strengthen fixture oracles

* test: bound lifecycle gates and verify recovered evidence

* test: verify public outcomes and lifecycle ownership

* test: assert precise evidence and release lifecycle gates

* test: verify selected facts and bound cleanup waits

* test: check retained evidence and decoded records

* test: verify final reports and retain cleanup ownership

* test: bound reviewed startup gates and retain cleanup

* test: verify PE errors and preserve MCP cleanup

* test: preserve MCP fixture cleanup ownership

* test: release provider gates before late startup
This commit is contained in:
morluto authored and GitHub committed 2026-11-01 00:15:28 +08:00
1 parent 2d5dec26c3
commit 60149282fc
342 files changed
+8844 -6279

No files matched your search

@@ -4,6 +4,8 @@ import { join } from "node:path";
import { pathToFileURL } from "node:url";
import { afterEach, expect, it, vi } from "vitest";
import { withVerifierCleanup } from "../../scripts/lib/verifier-cleanup.mjs";
import { awaitAcknowledgement } from "../../tests/fixtures/lifecycleAcknowledgement.js";
const fileAccess = vi.hoisted(() => ({
path: undefined as string | undefined,
@@ -248,31 +250,43 @@ it("drains pending Electron discovery before shutdown cleanup completes", async
const listing = provider.listTargets(
listElectronTargetsInputSchema.parse({ cdp_endpoint: fake.endpoint }),
);
await started;
let closed = false;
const closing = provider.close().then(() => {
closed = true;
});
const closedBeforeDiscovery = await Promise.race([
closing.then(() => true),
new Promise<boolean>((resolve) => setImmediate(() => resolve(false))),
]);
expect(closedBeforeDiscovery).toBe(false);
expect(closed).toBe(false);
releaseDiscovery();
let closing: Promise<void> | undefined;
await withVerifierCleanup(async () => {
await awaitAcknowledgement(started, listing, "Electron discovery");
closing = provider.close().then(() => {
closed = true;
});
const closedBeforeDiscovery = await Promise.race([
closing.then(() => true),
new Promise<boolean>((resolve) => setImmediate(() => resolve(false))),
]);
expect(closedBeforeDiscovery).toBe(false);
expect(closed).toBe(false);
releaseDiscovery();
const [listed] = await Promise.all([listing, closing]);
expect(closed).toBe(true);
expect(listed.ok).toBe(true);
expect(fileAccess.calls).toContain("stat");
const rejected = await provider.listTargets(
listElectronTargetsInputSchema.parse({ cdp_endpoint: fake.endpoint }),
);
expect(rejected.ok).toBe(false);
if (rejected.ok)
throw new Error("Expected closed provider admission failure");
expect(rejected.error.cleanupIncomplete).toBe(false);
expect(rejected.error.cleanupResources).toEqual([]);
const [listed] = await Promise.all([listing, closing]);
expect(closed).toBe(true);
expect(listed.ok).toBe(true);
expect(fileAccess.calls).toContain("stat");
const rejected = await provider.listTargets(
listElectronTargetsInputSchema.parse({ cdp_endpoint: fake.endpoint }),
);
expect(rejected.ok).toBe(false);
if (rejected.ok)
throw new Error("Expected closed provider admission failure");
expect(rejected.error.cleanupIncomplete).toBe(false);
expect(rejected.error.cleanupResources).toEqual([]);
}, [
releaseDiscovery,
async () => {
await listing;
},
async () => {
await closing;
},
() => provider.close(),
]);
});
it("keeps ordinary and malformed file-location authorization unchanged", async () => {