import { describe, expect, it } from "vitest"; import { parseApiErrorMessage } from "./api-error.js"; describe("parseApiErrorMessage", () => { it("uses plain string error body", () => { expect(parseApiErrorMessage(400, "Bad request")).toBe("Bad request"); }); it("reads common message fields", () => { expect(parseApiErrorMessage(403, { message: "Forbidden" })).toBe("Forbidden"); expect(parseApiErrorMessage(401, { error: "Unauthorized" })).toBe("Unauthorized"); expect(parseApiErrorMessage(422, { detail: "Validation failed" })).toBe("Validation failed"); }); it("flattens array style errors", () => { expect( parseApiErrorMessage(422, { errors: [{ message: "name is required" }, "email is invalid"], }), ).toBe("name is required; email is invalid"); }); it("falls back when no message can be extracted", () => { expect(parseApiErrorMessage(500, { foo: "bar" })).toBe("API error: 500"); }); });