71 lines
2.7 KiB
TypeScript
71 lines
2.7 KiB
TypeScript
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();
|
||
});
|
||
|
||
});
|