34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { projectAnalysisError } from "../domain/errors.js";
|
|
import {
|
|
ProcessCaptureError,
|
|
processCaptureCancelled,
|
|
} from "./ProcessCaptureError.js";
|
|
|
|
describe("process capture error projection", () => {
|
|
it("reports incomplete cleanup resources without exposing its cause", () => {
|
|
const projected = projectAnalysisError(
|
|
new ProcessCaptureError("terminal cleanup failed", {
|
|
cause: new Error("secret-token"),
|
|
reason: "cleanup_incomplete",
|
|
cleanupResources: ["process_group"],
|
|
}),
|
|
);
|
|
|
|
expect(projected).toMatchObject({
|
|
code: "cleanup_incomplete",
|
|
details: { cleanup: "incomplete", resources: ["process_group"] },
|
|
});
|
|
expect(JSON.stringify(projected)).not.toContain("secret-token");
|
|
});
|
|
|
|
it("projects caller cancellation as completed cleanup", () => {
|
|
expect(projectAnalysisError(processCaptureCancelled())).toMatchObject({
|
|
code: "cancelled",
|
|
category: "cancelled",
|
|
details: { operation: "process_capture", cleanup: "complete" },
|
|
});
|
|
});
|
|
});
|