140 lines
5.4 KiB
Markdown
140 lines
5.4 KiB
Markdown
# Test info
|
||
|
||
- Name: Негативные сценарии восстановления пароля >> Неверный код подтверждения
|
||
- Location: /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/recovery/recover-negative.spec.ts:23:7
|
||
|
||
# Error details
|
||
|
||
```
|
||
Error: Timed out 5000ms waiting for expect(locator).toHaveURL(expected)
|
||
|
||
Locator: locator(':root')
|
||
Expected pattern: /\/recoverpassword\/checkemail/
|
||
Received string: "https://ssas.dev.rdcenter.ru/recoverpassword"
|
||
Call log:
|
||
- expect.toHaveURL with timeout 5000ms
|
||
- waiting for locator(':root')
|
||
9 × locator resolved to <html lang="en">…</html>
|
||
- unexpected value "https://ssas.dev.rdcenter.ru/recoverpassword"
|
||
|
||
at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/recovery/recover-negative.spec.ts:28:24
|
||
```
|
||
|
||
# Page snapshot
|
||
|
||
```yaml
|
||
- 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"
|
||
- listitem:
|
||
- text: Оргкомитет
|
||
- img "Arrow"
|
||
- img "Логотип"
|
||
- heading "Забыли пароль?" [level=2]
|
||
- paragraph: Чтобы задать новый пароль, введите электронную почту своего аккаунта
|
||
- img
|
||
- textbox "Email": autotest@example.com
|
||
- button "Далее"
|
||
- paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика"
|
||
- paragraph
|
||
- 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 { RecoverPage } from '../../../page-objects/RecoverPage';
|
||
3 | import { recovery, recoveryErrors, users } from '../../../utils/test-data';
|
||
4 |
|
||
5 | test.describe('Негативные сценарии восстановления пароля', () => {
|
||
6 |
|
||
7 | test('Некорректный email (формат)', async ({ page }) => {
|
||
8 | const recoverPage = new RecoverPage(page);
|
||
9 | await recoverPage.goto();
|
||
10 |
|
||
11 | await recoverPage.enterEmail('invalid-email');
|
||
12 | await expect(recoverPage.emailFormatError).toBeVisible();
|
||
13 | });
|
||
14 |
|
||
15 | test('Несуществующий email', async ({ page }) => {
|
||
16 | const recoverPage = new RecoverPage(page);
|
||
17 | await recoverPage.goto();
|
||
18 |
|
||
19 | await recoverPage.enterEmail(recovery.emailNotFound);
|
||
20 | await expect(recoverPage.emailFormatError).toBeVisible(); // сервер показывает ту же ошибку
|
||
21 | });
|
||
22 |
|
||
23 | test('Неверный код подтверждения', async ({ page }) => {
|
||
24 | const recoverPage = new RecoverPage(page);
|
||
25 | await recoverPage.goto();
|
||
26 |
|
||
27 | await recoverPage.enterEmail(recovery.emailExists);
|
||
> 28 | await expect(page).toHaveURL(/\/recoverpassword\/checkemail/);
|
||
| ^ Error: Timed out 5000ms waiting for expect(locator).toHaveURL(expected)
|
||
29 |
|
||
30 | await recoverPage.enterVerificationCode('654321'); // неверный
|
||
31 | await expect(recoverPage.codeError).toBeVisible();
|
||
32 | });
|
||
33 |
|
||
34 | test('Некорректный новый пароль', async ({ page }) => {
|
||
35 | const recoverPage = new RecoverPage(page);
|
||
36 | await recoverPage.goto();
|
||
37 |
|
||
38 | await recoverPage.enterEmail(recovery.emailExists);
|
||
39 | await recoverPage.enterVerificationCode(recovery.verificationCode);
|
||
40 |
|
||
41 | await recoverPage.enterNewPassword(users.newPassword.weakPassword, users.newPassword.weakPassword);
|
||
42 | await expect(recoverPage.passwordError).toBeVisible();
|
||
43 | });
|
||
44 |
|
||
45 | test('Пустое поле "Повторите пароль"', async ({ page }) => {
|
||
46 | const recoverPage = new RecoverPage(page);
|
||
47 | await recoverPage.goto();
|
||
48 |
|
||
49 | await recoverPage.enterEmail(recovery.emailExists);
|
||
50 | await recoverPage.enterVerificationCode(recovery.verificationCode);
|
||
51 |
|
||
52 | await recoverPage.enterNewPassword(users.newPassword.password, '');
|
||
53 | await expect(recoverPage.passwordRepeatError).toBeVisible();
|
||
54 | });
|
||
55 |
|
||
56 | test('Пароли не совпадают', async ({ page }) => {
|
||
57 | const recoverPage = new RecoverPage(page);
|
||
58 | await recoverPage.goto();
|
||
59 |
|
||
60 | await recoverPage.enterEmail(recovery.emailExists);
|
||
61 | await recoverPage.enterVerificationCode(recovery.verificationCode);
|
||
62 |
|
||
63 | await recoverPage.enterNewPassword(users.newPassword.password, users.newPassword.mismatchPassword);
|
||
64 | await expect(recoverPage.mismatchPasswordError).toBeVisible();
|
||
65 | });
|
||
66 |
|
||
67 | });
|
||
68 |
|
||
``` |