Добавлен файл register.negative.spec проверяющий негативные сценарии раздела Регистрация

This commit is contained in:
Vlad Smykov
2025-06-18 17:15:18 +03:00
parent 395a008c74
commit 66f60f10e9
568 changed files with 3084 additions and 218 deletions

View File

@@ -0,0 +1,70 @@
import { test, expect } from '@playwright/test';
import { RegisterPage } from '../../../page-objects/RegisterPage';
test.describe('Негативные сценарии регистрации', () => {
test('Отправка пустой формы', async ({ page }) => {
const registerPage = new RegisterPage(page);
await registerPage.goto();
await registerPage.submit();
const requiredErrors = await page.locator('div[name="error"]', { hasText: 'Поле обязательно для заполнения' }).allTextContents();
expect(requiredErrors.length).toBeGreaterThan(0);
await expect(page.getByText('Не менее 8 символов')).toBeVisible(); // пароль
});
test('Некорректное имя и фамилия (слишком длинные)', async ({ page }) => {
const registerPage = new RegisterPage(page);
await registerPage.goto();
await registerPage.fillName('А'.repeat(51));
await registerPage.fillSurname('Б'.repeat(51));
await registerPage.submit();
await expect(page.getByText('Некорректное имя')).toBeVisible();
await expect(page.getByText('Некорректная фамилия')).toBeVisible();
});
test('Некорректный email формат', async ({ page }) => {
const registerPage = new RegisterPage(page);
await registerPage.goto();
await registerPage.fillEmail('invalid-email');
await registerPage.submit();
await expect(page.getByText('Некорректный Email')).toBeVisible();
});
test('Слишком длинная должность', async ({ page }) => {
const registerPage = new RegisterPage(page);
await registerPage.goto();
await registerPage.fillPosition('X'.repeat(201));
await registerPage.submit();
await expect(page.getByText('Не более 200 символов!')).toBeVisible();
});
test('Слишком длинное название организации', async ({ page }) => {
const registerPage = new RegisterPage(page);
await registerPage.goto();
// Заполнить все поля валидно, кроме организации
await registerPage.register({
name: 'Иван',
surname: 'Иванов',
patronymic: '',
academicTitle: 'Доцент',
degree: 'Кандидат наук',
position: 'Преподаватель',
organization: 'О'.repeat(201),
email: `test${Date.now()}@example.com`,
phone: `+7999${Math.floor(Math.random() * 1000000).toString().padStart(7, '0')}`,
password: '!Test123',
confirmPassword: '!Test123'
});
await expect(page.getByText('Некорректное название организации!')).toBeVisible();
});
});