openpanel/packages/strapi-v4/test/utils/transformHttpError.spec.ts
Stefan Pejcic 09f9f9502d packages
2024-11-07 19:03:37 +01:00

74 lines
1.8 KiB
TypeScript

import type { HttpError } from "@refinedev/core";
import { transformHttpError } from "../../src/utils/transformHttpError";
import * as _transformErrorMessages from "../../src/utils/transformErrorMessages";
describe("transformHttpError", () => {
it("should transform an error object", () => {
jest.mock("../../src/utils/transformErrorMessages", () => ({
transformErrorMessages: jest.fn().mockImplementationOnce(() => {
return {
email: ["Email is required"],
};
}),
}));
const mockError = {
response: {
data: {
error: {
message: "Something went wrong",
status: 400,
details: {
errors: [
{
path: ["email"],
message: "Email is required",
name: "ValidationError",
},
],
},
},
},
},
};
const expectedHttpError: HttpError = {
statusCode: 400,
message: "Something went wrong",
errors: {
email: ["Email is required"],
},
};
expect(transformHttpError(mockError)).toEqual(expectedHttpError);
});
it("should handle undefined values", () => {
jest.mock("../../src/utils/transformErrorMessages", () => ({
transformErrorMessages: jest.fn().mockImplementationOnce(() => {
return {};
}),
}));
const mockError = {
response: {
data: {
error: {
message: undefined,
status: undefined,
details: {},
},
},
},
};
const expectedHttpError = {
statusCode: undefined,
message: undefined,
errors: {},
};
expect(transformHttpError(mockError)).toEqual(expectedHttpError);
});
});