import { describe, expect, it } from "vitest"; import { AcpRuntimeError, withAcpRuntimeErrorBoundary } from "./errors.js"; describe("withAcpRuntimeErrorBoundary", () => { it("wraps generic errors with fallback code and source message", async () => { await expect( withAcpRuntimeErrorBoundary({ run: async () => { throw new Error("boom"); }, fallbackCode: "ACP_TURN_FAILED", fallbackMessage: "fallback", }), ).rejects.toMatchObject({ name: "AcpRuntimeError", code: "ACP_TURN_FAILED", message: "boom", }); }); it("passes through existing ACP runtime errors", async () => { const existing = new AcpRuntimeError("ACP_BACKEND_MISSING", "backend missing"); await expect( withAcpRuntimeErrorBoundary({ run: async () => { throw existing; }, fallbackCode: "ACP_TURN_FAILED", fallbackMessage: "fallback", }), ).rejects.toBe(existing); }); });