171 lines
7.2 KiB
Markdown
171 lines
7.2 KiB
Markdown
# 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 |
|
||
``` |