| // api.test.js | |
| const axios = require('axios'); | |
| const updateUser = require('../api'); | |
| // Mock the axios module | |
| jest.mock('axios'); | |
| describe('PUT Request Tests', () => { | |
| beforeEach(() => { | |
| jest.clearAllMocks(); | |
| }); | |
| it('updates a user successfully', async () => { | |
| const userId = 1; | |
| const updatedData = { name: 'Jane Doe' }; | |
| const response = { id: userId, ...updatedData }; | |
| axios.put.mockResolvedValue({ data: response }); | |
| const result = await updateUser(userId, updatedData); | |
| expect(result).toEqual(response); | |
| expect(axios.put).toHaveBeenCalledWith(`https://api.example.com/users/${userId}`, updatedData); | |
| }); | |
| it('handles API error during user update', async () => { | |
| const userId = 1; | |
| const updatedData = { name: 'Jane Doe' }; | |
| const errorMessage = 'Update Failed'; | |
| axios.put.mockRejectedValue(new Error(errorMessage)); | |
| await expect(updateUser(userId, updatedData)).rejects.toThrow(errorMessage); | |
| expect(axios.put).toHaveBeenCalledWith(`https://api.example.com/users/${userId}`, updatedData); | |
| }); | |
| }); |