# 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 |
```