import { assert, it } from "@effect/vitest"; import { EnvironmentInternalError } from "@t3tools/contracts"; import { ProjectCommandError } from "./project.ts"; it("maps declared server failures into structural project command errors", () => { const cause = new EnvironmentInternalError({ code: "internal_error", reason: "orchestration_snapshot_failed", traceId: "trace-123", }); const error = ProjectCommandError.fromLiveServerRequest(cause); assert.strictEqual(error.operation, "callLiveServer"); assert.strictEqual(error.code, "internal_error"); assert.strictEqual(error.traceId, "trace-123"); assert.strictEqual(error.message, "Server request failed (internal_error, trace trace-123)."); assert.strictEqual(error.cause, cause); }); it("preserves unexpected server failures without deriving the message from them", () => { const cause = new Error("credential abc123 was rejected"); const error = ProjectCommandError.fromLiveServerRequest(cause); assert.strictEqual(error.operation, "callLiveServer"); assert.strictEqual(error.detail, "Failed to call the running server."); assert.strictEqual(error.message, "Failed to call the running server."); assert.strictEqual(error.cause, cause); });