test: vitest setup + auth/login/cookie banner tests
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
/* Tests de la page de connexion : validation du captcha anti-bot */
|
||||
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
||||
import { render, screen, fireEvent } from '@testing-library/react';
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
import Login from '../pages/Login/Login';
|
||||
import { AuthProvider } from '../context/AuthContext';
|
||||
import * as api from '../services/api';
|
||||
|
||||
function renderLogin() {
|
||||
return render(
|
||||
<MemoryRouter>
|
||||
<AuthProvider>
|
||||
<Login />
|
||||
</AuthProvider>
|
||||
</MemoryRouter>
|
||||
);
|
||||
}
|
||||
|
||||
describe('Login - captcha', () => {
|
||||
beforeEach(() => {
|
||||
localStorage.clear();
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
it('affiche une erreur et n\'appelle pas l\'API si le captcha est faux', async () => {
|
||||
const loginSpy = vi.spyOn(api, 'login').mockResolvedValue({ username: 'x', role: 'Admin' });
|
||||
|
||||
renderLogin();
|
||||
|
||||
fireEvent.change(screen.getByLabelText('Identifiant'), { target: { value: 'alice' } });
|
||||
fireEvent.change(screen.getByLabelText('Mot de passe'), { target: { value: 'pwd' } });
|
||||
/* Réponse volontairement absurde, jamais égale à x + y (max 20) */
|
||||
fireEvent.change(screen.getByLabelText(/combien font/i), { target: { value: '9999' } });
|
||||
|
||||
fireEvent.click(screen.getByRole('button', { name: /Se connecter/ }));
|
||||
|
||||
expect(await screen.findByText('Réponse au captcha incorrecte.')).toBeInTheDocument();
|
||||
expect(loginSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user