50 lines
965 B
TypeScript
50 lines
965 B
TypeScript
import { jest } from '@jest/globals';
|
|
|
|
export const mockApiClient = {
|
|
get: jest.fn(),
|
|
post: jest.fn(),
|
|
put: jest.fn(),
|
|
patch: jest.fn(),
|
|
delete: jest.fn(),
|
|
interceptors: {
|
|
request: {
|
|
use: jest.fn(),
|
|
},
|
|
response: {
|
|
use: jest.fn(),
|
|
},
|
|
},
|
|
};
|
|
|
|
export const resetApiClientMocks = () => {
|
|
mockApiClient.get.mockReset();
|
|
mockApiClient.post.mockReset();
|
|
mockApiClient.put.mockReset();
|
|
mockApiClient.patch.mockReset();
|
|
mockApiClient.delete.mockReset();
|
|
};
|
|
|
|
export const mockApiResponse = <T>(data: T) => ({
|
|
data,
|
|
status: 200,
|
|
statusText: 'OK',
|
|
headers: {},
|
|
config: {},
|
|
});
|
|
|
|
export const mockApiError = (
|
|
message: string,
|
|
status = 400,
|
|
data: unknown = {}
|
|
) => {
|
|
const error = new Error(message) as Error & {
|
|
response: { data: unknown; status: number };
|
|
isAxiosError: boolean;
|
|
};
|
|
error.response = { data, status };
|
|
error.isAxiosError = true;
|
|
return error;
|
|
};
|
|
|
|
export default mockApiClient;
|