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(); }); });