fix(housekeeping): preserve audit failure evidence

This commit is contained in:
Simo committed 2026-08-26 22:03:02 +02:00
1 parent 89dec9da05
commit 21cd88ccfd
4 files changed
+80 -5

No files matched your search

@@ -96,4 +96,37 @@ describe("audit command envelope", () => {
undefined,
);
});
it("preserves the original operation error when failure evidence rejects", async () => {
const original = new Error("operation failed");
const auditFailure = new Error("audit failure");
const writer: HousekeepingAuditWriter = {
write: vi
.fn()
.mockResolvedValueOnce(undefined)
.mockRejectedValueOnce(auditFailure),
};
await expect(
runWithAuditIntent(writer, auditEntry, () => Promise.reject(original)),
).rejects.toBe(original);
expect(
(original as Error & { auditOutcomeError?: unknown }).auditOutcomeError,
).toBe(auditFailure);
});
it("throws a completed-operation error when success evidence rejects", async () => {
const auditFailure = new Error("audit failure");
const writer: HousekeepingAuditWriter = {
write: vi
.fn()
.mockResolvedValueOnce(undefined)
.mockRejectedValueOnce(auditFailure),
};
await expect(
runWithAuditIntent(writer, auditEntry, () => Promise.resolve("done")),
).rejects.toMatchObject({
operationCompleted: true,
operationResult: "done",
auditOutcomeError: auditFailure,
});
});
});