evOo-local/apps/api/src/log-unexpected-rpc-error.test.ts
cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline
(Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/*
packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
2026-09-20 17:15:16 +02:00

43 lines
1.4 KiB
TypeScript

import { ORPCError } from "@orpc/server";
import { createLogger, createTestSink, installLogger } from "@rakazo/logging";
import { afterEach, describe, expect, it } from "vitest";
import { logUnexpectedRpcError } from "./app.js";
describe("logUnexpectedRpcError", () => {
afterEach(() => {
installLogger(createLogger({ service: "rakazo-api", level: "off", sinks: [] }));
});
it("stays quiet for an error the router chose to return", () => {
const sink = createTestSink();
installLogger(createLogger({ service: "rakazo-api", sinks: [sink] }));
logUnexpectedRpcError(new ORPCError("BAD_REQUEST", { message: "file is too large" }), [
"computer",
"readFile",
]);
expect(sink.events).toEqual([]);
});
it("names the procedure and every cause behind an opaque failure", () => {
const sink = createTestSink();
installLogger(createLogger({ service: "rakazo-api", sinks: [sink] }));
const error = new Error("fetch failed", {
cause: Object.assign(new Error("connect ECONNREFUSED 127.0.0.1:7091"), {
code: "ECONNREFUSED",
}),
});
logUnexpectedRpcError(error, ["computer", "screenUrl"]);
expect(sink.events[0]).toMatchObject({
message: "rpc computer/screenUrl failed",
error: {
message: "fetch failed",
cause: { message: "connect ECONNREFUSED 127.0.0.1:7091" },
},
});
});
});