* Do not import stripe lib in getServerErrorFromUnknown * address comment * remove comment * add url * keep the location * remove space * add unit test for getServerErrorFromUnknown * improve
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
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");
|
|
});
|
|
});
|