Files
reverse-engineering-anything/tests/boundary/process/cliEnvironmentSeam.test.ts
T
morluto 63bf91405c refactor!: enforce canonical evidence and provider boundaries
Deliver complete Evidence directly through MCP with required nullable analysis profiles and immutable per-server delivery settings. Bind selected environments at construction and require typed cleanup outcomes with retained retry ownership.

Remove test-only routing, duplicate session and snapshot metadata, producer-field repairs, and ambiguous provider arguments. Separate artifact byte identity from occurrence classification and retain typed source-map and partial native facts across CLI, MCP, and verifier consumers.

BREAKING CHANGE: obsolete Evidence envelopes, session aliases, incomplete snapshots, and missing normalized producer facts are no longer accepted.
2026-10-09 20:18:52 +08:00

77 lines
2.8 KiB
TypeScript

import { chmod, mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { describe, expect, it } from "vitest";
import {
captureProcessScenarioFile,
isProcessCliFailure,
} from "../../../src/application/process/ProcessCli.js";
import { createDirectAnalysis } from "../../../src/composition/directAnalysis.js";
import { probeProcessCaptureCapability } from "../../../src/process/capture/ProcessHarness.js";
import { parseEvidence } from "../../../src/domain/evidence.js";
import { parseProcessCapture } from "../../../src/domain/process/processCapture.js";
describe("the CLI takes its environment as an input", () => {
it("resolves from injected PATH and inherits injected env with scenario overrides", async ({
skip,
}) => {
const capability = await probeProcessCaptureCapability();
if (!capability.available) {
skip("Process capture is unavailable on this host");
return;
}
const root = await mkdtemp(join(tmpdir(), "rea-cli-env-process-"));
const bin = join(root, "bin");
const executable = join(bin, "rea-injected-process-probe");
const scenarioPath = join(root, "scenario.json");
try {
await mkdir(bin);
await writeFile(
executable,
[
"#!/bin/sh",
'printf "%s|%s\\n" "$REA_CAPTURE_INJECTED_MARKER" "$REA_CAPTURE_SCENARIO_OVERRIDE"',
].join("\n"),
);
await chmod(executable, 0o755);
await writeFile(
scenarioPath,
JSON.stringify({
executable: "rea-injected-process-probe",
working_directory: root,
environment: { REA_CAPTURE_SCENARIO_OVERRIDE: "scenario-value" },
}),
);
const result = await captureProcessScenarioFile(scenarioPath, {
PATH: bin,
REA_CAPTURE_INJECTED_MARKER: "injected-value",
REA_CAPTURE_SCENARIO_OVERRIDE: "host-value",
});
if (isProcessCliFailure(result))
throw new Error(
`Process capture returned an error: ${JSON.stringify(result)}`,
);
const evidence = parseEvidence(result);
const capture = parseProcessCapture(evidence.normalized_result);
expect(capture.frames.map(({ data }) => data).join("")).toContain(
"injected-value|scenario-value",
);
} finally {
await rm(root, { recursive: true, force: true });
}
});
it("reports session status from a supplied environment", async () => {
// An invalid configuration must surface through the caller's supplied
// environment rather than whatever the process happens to carry.
const result = await createDirectAnalysis({
REA_LOG_LEVEL: "not-a-level",
}).runCapabilityStatus();
expect(result).toMatchObject({ error: expect.anything() });
});
});