Ответ
- Юнит-тесты – проверка отдельных функций (валидация логина/пароля, обработка токенов).
test('validateEmail returns true for valid email', () => {
expect(validateEmail('test@example.com')).toBe(true);
});
- Интеграционные тесты – проверка взаимодействия с API (логин, получение токена).
test('login returns token on success', async () => {
const res = await login('user', 'pass');
expect(res.token).toBeDefined();
});
- E2E-тесты (Cypress/Playwright) – имитация действий пользователя (ввод данных, переход после авторизации).
it('redirects to dashboard after login', () => {
cy.visit('/login');
cy.get('#email').type('user@test.com');
cy.get('#password').type('pass123');
cy.get('button').click();
cy.url().should('include', '/dashboard');
});
-
Моки и стабы – изоляция сервисов (например, мок API для тестов без бекенда).
-
Тесты безопасности – проверка уязвимостей (XSS, CSRF, хранение токенов в localStorage vs cookies).
-
Snapshot-тесты – контроль изменений UI форм аутентификации.
Для надежности комбинируют несколько подходов.