import { expect, it, describe } from "vitest"; import { HttpError } from "../http-error"; import { getServerErrorFromUnknown } from "./getServerErrorFromUnknown"; describe("getServerErrorFromUnknown", () => { it("should handle a StripeInvalidRequestError", () => { const stripeError = { name: "StripeInvalidRequestError", type: "StripeInvalidRequestError", rawType: "invalid_request_error", message: "No such customer: cus_12345; a valid customer ID is required.", code: "resource_missing", doc_url: "https://stripe.com/docs/error-codes/resource-missing", statusCode: 400, raw: { error: { type: "invalid_request_error", message: "No such customer" }, }, headers: { "content-type": "application/json", "request-id": "req_abc123xyz", }, requestId: "req_abc123xyz", param: "customer", }; Object.setPrototypeOf(stripeError, Error.prototype); const result = getServerErrorFromUnknown(stripeError); expect(result).toBeInstanceOf(HttpError); expect(result.statusCode).toBe(400); expect(result.message).toBe(stripeError.message); expect(result.cause).toEqual(stripeError); expect(result.name).toBe("HttpError"); }); });