/**
* Mock axios for testing without network calls
*/
import { vi } from 'vitest';
export interface MockAxiosResponse {
data: any;
status: number;
statusText: string;
headers: Record<string, string>;
}
export interface MockAxiosError {
response?: {
status: number;
data?: {
error?: {
message?: string;
};
};
};
message: string;
}
export const createMockAxiosResponse = (data: any, status = 200): MockAxiosResponse => ({
data,
status,
statusText: status === 200 ? 'OK' : 'Error',
headers: {},
});
export const createMockAxiosError = (status: number, message: string): MockAxiosError => ({
response: {
status,
data: {
error: {
message
}
}
},
message
});
export const createAxiosMock = () => {
const mockAxios = vi.fn();
mockAxios.post = vi.fn();
mockAxios.get = vi.fn();
mockAxios.put = vi.fn();
mockAxios.delete = vi.fn();
return mockAxios;
};