Добавлен файл register.negative.spec проверяющий негативные сценарии раздела Регистрация
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
# Test info
|
||||
|
||||
- Name: Негативные сценарии регистрации >> Слишком длинное название организации
|
||||
- Location: /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/registration/register.negative.spec.ts:48:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: Timed out 5000ms waiting for expect(locator).toBeVisible()
|
||||
|
||||
Locator: getByText('Некорректное название организации!')
|
||||
Expected: visible
|
||||
Received: <element(s) not found>
|
||||
Call log:
|
||||
- expect.toBeVisible with timeout 5000ms
|
||||
- waiting for getByText('Некорректное название организации!')
|
||||
|
||||
at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/registration/register.negative.spec.ts:67:72
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- main:
|
||||
- main:
|
||||
- button
|
||||
- button "Скрыть Close":
|
||||
- text: Скрыть
|
||||
- img "Close"
|
||||
- list:
|
||||
- listitem:
|
||||
- text: Главная
|
||||
- img "Arrow"
|
||||
- listitem:
|
||||
- text: Автору
|
||||
- img "Arrow"
|
||||
- listitem:
|
||||
- text: Новости
|
||||
- img "Arrow"
|
||||
- listitem:
|
||||
- text: Участники
|
||||
- img "Arrow"
|
||||
- listitem:
|
||||
- text: Оргкомитет
|
||||
- img "Arrow"
|
||||
- paragraph: 19.06.2025
|
||||
- paragraph: Этап
|
||||
- img "Logo"
|
||||
- paragraph: Добро пожаловать
|
||||
- paragraph: Зарегистрируйтесь, чтобы начать работу.
|
||||
- textbox "Имя*": Иван
|
||||
- text: Имя*
|
||||
- textbox "Фамилия*": Иванов
|
||||
- text: Фамилия*
|
||||
- textbox "Отчество"
|
||||
- textbox "Учёное звание*": Доцент
|
||||
- img "img"
|
||||
- text: Учёное звание*
|
||||
- textbox "Учёная степень*": Кандидат наук
|
||||
- img "img"
|
||||
- text: Учёная степень*
|
||||
- textbox "Должность": Преподаватель
|
||||
- text: Должность
|
||||
- textbox "Организация*": ООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООО
|
||||
- text: Организация*
|
||||
- textbox "Email (логин)*": test1750252524321@example.com
|
||||
- text: Email (логин)*
|
||||
- textbox "Номер телефона*": +7 (999) 197-79-6
|
||||
- text: Некорректный номер
|
||||
- img "!"
|
||||
- img "показать пароль"
|
||||
- textbox "Придумайте пароль*": "!Test123"
|
||||
- text: Придумайте пароль*
|
||||
- img "показать пароль"
|
||||
- textbox "Повторите пароль*": "!Test123"
|
||||
- text: Повторите пароль*
|
||||
- paragraph: ИЛИ
|
||||
- button "Sfedu Logo Войти через аккаунт @sfedu":
|
||||
- img "Sfedu Logo"
|
||||
- text: Войти через аккаунт @sfedu
|
||||
- button "Зарегистрироваться"
|
||||
- paragraph: Уже есть аккаунт?
|
||||
- paragraph: Авторизируйтесь
|
||||
- paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика"
|
||||
- paragraph: 19 - 26 июня 2025 года Таганрог
|
||||
- paragraph: "Напишите нам:"
|
||||
- paragraph:
|
||||
- text: "e-mail:"
|
||||
- link "ssas@ictis.sfedu.ru":
|
||||
- /url: mailto:ssas@ictis.sfedu.ru
|
||||
- text: Сайт разработан Центром исследований и разработки ИКТИБ
|
||||
- link "Ознакомиться с руководством пользователя":
|
||||
- /url: /static/media/user_manual.f1df94e2c5143919fb0d.pdf
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
1 | import { test, expect } from '@playwright/test';
|
||||
2 | import { RegisterPage } from '../../../page-objects/RegisterPage';
|
||||
3 |
|
||||
4 | test.describe('Негативные сценарии регистрации', () => {
|
||||
5 |
|
||||
6 | test('Отправка пустой формы', async ({ page }) => {
|
||||
7 | const registerPage = new RegisterPage(page);
|
||||
8 | await registerPage.goto();
|
||||
9 | await registerPage.submit();
|
||||
10 |
|
||||
11 | const requiredErrors = await page.locator('div[name="error"]', { hasText: 'Поле обязательно для заполнения' }).allTextContents();
|
||||
12 | expect(requiredErrors.length).toBeGreaterThan(0);
|
||||
13 | await expect(page.getByText('Не менее 8 символов')).toBeVisible(); // пароль
|
||||
14 | });
|
||||
15 |
|
||||
16 | test('Некорректное имя и фамилия (слишком длинные)', async ({ page }) => {
|
||||
17 | const registerPage = new RegisterPage(page);
|
||||
18 | await registerPage.goto();
|
||||
19 |
|
||||
20 | await registerPage.fillName('А'.repeat(51));
|
||||
21 | await registerPage.fillSurname('Б'.repeat(51));
|
||||
22 | await registerPage.submit();
|
||||
23 |
|
||||
24 | await expect(page.getByText('Некорректное имя')).toBeVisible();
|
||||
25 | await expect(page.getByText('Некорректная фамилия')).toBeVisible();
|
||||
26 | });
|
||||
27 |
|
||||
28 | test('Некорректный email формат', async ({ page }) => {
|
||||
29 | const registerPage = new RegisterPage(page);
|
||||
30 | await registerPage.goto();
|
||||
31 |
|
||||
32 | await registerPage.fillEmail('invalid-email');
|
||||
33 | await registerPage.submit();
|
||||
34 |
|
||||
35 | await expect(page.getByText('Некорректный Email')).toBeVisible();
|
||||
36 | });
|
||||
37 |
|
||||
38 | test('Слишком длинная должность', async ({ page }) => {
|
||||
39 | const registerPage = new RegisterPage(page);
|
||||
40 | await registerPage.goto();
|
||||
41 |
|
||||
42 | await registerPage.fillPosition('X'.repeat(201));
|
||||
43 | await registerPage.submit();
|
||||
44 |
|
||||
45 | await expect(page.getByText('Не более 200 символов!')).toBeVisible();
|
||||
46 | });
|
||||
47 |
|
||||
48 | test('Слишком длинное название организации', async ({ page }) => {
|
||||
49 | const registerPage = new RegisterPage(page);
|
||||
50 | await registerPage.goto();
|
||||
51 |
|
||||
52 | // Заполнить все поля валидно, кроме организации
|
||||
53 | await registerPage.register({
|
||||
54 | name: 'Иван',
|
||||
55 | surname: 'Иванов',
|
||||
56 | patronymic: '',
|
||||
57 | academicTitle: 'Доцент',
|
||||
58 | degree: 'Кандидат наук',
|
||||
59 | position: 'Преподаватель',
|
||||
60 | organization: 'О'.repeat(201),
|
||||
61 | email: `test${Date.now()}@example.com`,
|
||||
62 | phone: `+7999${Math.floor(Math.random() * 1000000).toString().padStart(6, '0')}`,
|
||||
63 | password: '!Test123',
|
||||
64 | confirmPassword: '!Test123'
|
||||
65 | });
|
||||
66 |
|
||||
> 67 | await expect(page.getByText('Некорректное название организации!')).toBeVisible();
|
||||
| ^ Error: Timed out 5000ms waiting for expect(locator).toBeVisible()
|
||||
68 | });
|
||||
69 |
|
||||
70 | });
|
||||
71 |
|
||||
```
|
||||
Reference in New Issue
Block a user