Me he burlado de mi API de inicio de sesión de esta manera
const server = setupServer( rest.get(authenticationLogin, (req, res, ctx) => { return res( ctx.json({ status: 200, data: { tenantKey: 'tenant', employeeDto: { firstName: 'firstname', lastName: 'lastname', token: 'tplem', role: 'role', id: 1, userName: 'username', designation: 'designation', }, }, }), ) }), )Y tengo una configuración de prueba como esta
test('should redirect to / when login successful', async () => { const setItem = jest.spyOn(Storage.prototype, 'setItem') userEvent.type(renderedScreen.getByPlaceholderText('Username'), 'testing') userEvent.click(renderedScreen.getByRole('button')) await waitFor(() => { // check if setItem is called to save to localStorage expect(setItem).toHaveBeenNthCalledWith(1, 'firstname') // check if a redirect happens meaning login was successful expect(history.location.pathname).toBe('/') }) })En el archivo del componente, la función de inicio de sesión guardará los elementos de respuesta en el almacenamiento local
localStorage.setItem('employeeName', employeeName) localStorage.setItem('employeeId', employeeId) localStorage.setItem('userName', userName) localStorage.setItem('role', role) localStorage.setItem('tenantKey', tenantKeyFromResponse) localStorage.setItem('token', token) localStorage.setItem('designation', designation)Pero de alguna manera estoy recibiendo este error
expect(jest.fn()).toHaveBeenNthCalledWith(n, ...expected) n: 1 Expected: "test" Received -> 1: "test", "test" 2: "test", "test" Number of calls: 3Ni siquiera sé de dónde vienen las cadenas 'prueba'. Estoy devolviendo diferentes valores de la API simulada.
El número de llamadas ni siquiera es correcto. Dice en el registro que solo se ha llamado 3 veces cuando en la función de inicio de sesión se llama 7 veces.