describe('Error Handling Tests', () => {
beforeEach(() => {
jest.clearAllMocks();
});
afterEach(() => {
// Restore all mocks after each test
jest.restoreAllMocks();
});
it('handles network error correctly', async () => {
const errorMessage = 'Network Error';
axios.get.mockRejectedValue(new Error(errorMessage)); // Simulate a network error
await expect(fetchData('https://api.example.com/user/1')).rejects.toThrow(errorMessage);
expect(axios.get).toHaveBeenCalledWith('https://api.example.com/user/1');
});
it('handles server error (500) correctly', async () => {
const errorResponse = {
response: { status: 500, data: { message: 'Internal Server Error' } }
};
axios.get.mockRejectedValue(errorResponse); // Simulate a 500 error
await expect(fetchData('https://api.example.com/user/1')).rejects.toThrow('Internal Server Error');
});
});