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