import { beforeEach, describe, expect, it, vi } from "vitest"; const mocks = vi.hoisted(() => ({ error: vi.fn(), })); vi.mock("$lib/server/logger", () => ({ logger: { error: mocks.error }, })); import { handleServerError } from "./error"; describe("handleServerError", () => { beforeEach(() => mocks.error.mockReset()); it("logs a plain request summary without native Headers or credentials", async () => { const request = new Request("https://example.com/api/conversation/test", { method: "POST", headers: { authorization: "Bearer secret-never-log", cookie: "session=secret-never-log", }, }); const result = await handleServerError({ error: new Error("upstream failed"), event: { locals: {}, params: {}, request, route: { id: "/api/conversation/[id]" }, url: new URL(request.url), } as never, status: 500, message: "Internal Error", } as never); expect(result.message).toBe("An error occurred"); expect(mocks.error).toHaveBeenCalledOnce(); const logged = mocks.error.mock.calls[0]?.[0]; expect(logged.request).toEqual({ method: "POST", mode: "cors" }); expect(Object.getPrototypeOf(logged.request)).toBe(Object.prototype); expect(JSON.stringify(logged)).not.toContain("secret-never-log"); }); });