Files
rea/tests/process-global/analysisViewFileCancellation.test.ts
gensokyo-dev 4bfdadb7de perf(frida): add retained summaries for session status (#5661)
Add opt-in Frida session status summaries linked to complete retained Evidence. Share canonical session facts across contracts and preserve observed state, source identity and capture truncation.

Validated with native SDK/client workflows, default delivery compatibility, lifecycle and provenance tests. The completed large-history task uses 50.9% fewer estimated request tokens; no general CPU or latency improvement is claimed.

Fixes #5640
2026-10-21 03:21:30 +08:00

50 lines
2.0 KiB
TypeScript

import { writeFile } from "node:fs/promises";
import { join } from "node:path";
import { expect, it, vi } from "vitest";
import {
analysisViewCaptureEvidence,
environmentManifestCaptureFixture,
} from "../fixtures/analysisView.js";
import { createTestTempDirectory } from "../fixtures/temporaryDirectory.js";
import { readEvidenceFileSource } from "../../src/application/analysisView/evidenceFileSource.js";
import { inspectAnalysisViewWithFiles } from "../../src/application/analysisView/AnalysisViewService.js";
// This module mock needs an isolated graph even if another service imports the workflow first.
vi.mock("../../src/application/analysisView/evidenceFileSource.js", {
spy: true,
});
it("prefers cancellation observed after failed Evidence-file authentication", async () => {
const controller = new AbortController();
const parent = analysisViewCaptureEvidence(
environmentManifestCaptureFixture(),
);
const root = await createTestTempDirectory("rea-analysis-view-cancel-");
const path = join(root, "parent.json");
await writeFile(
path,
JSON.stringify({ ...parent, evidence_id: `ev_${"0".repeat(64)}` }),
);
const { readEvidenceFileSource: read } = await vi.importActual<
typeof import("../../src/application/analysisView/evidenceFileSource.js")
>("../../src/application/analysisView/evidenceFileSource.js");
// Abort at the completed read boundary, before its authentication failure is delivered.
vi.mocked(readEvidenceFileSource).mockImplementationOnce(async (...args) => {
const loaded = await read(...args);
controller.abort();
return loaded;
});
expect(
await inspectAnalysisViewWithFiles(
{
source: { kind: "evidence-file", path },
view: { kind: "environment-manifest" },
},
undefined,
{ signal: controller.signal },
),
).toMatchObject({ ok: false, error: { _tag: "AnalysisCancelledError" } });
expect(readEvidenceFileSource).toHaveBeenCalledTimes(1);
expect(controller.signal.aborted).toBe(true);
});