From 12dc41ee7c0d2407a3479acb195e9471edee03c7 Mon Sep 17 00:00:00 2001 From: grendervill Date: Sat, 26 Sep 2026 17:20:33 +0300 Subject: [PATCH] =?UTF-8?q?fix(e2e):=20=D1=82=D0=BE=D1=87=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D0=BB=D0=BE=D0=BA=D0=B0=D1=82=D0=BE=D1=80=20=D0=BA?= =?UTF-8?q?=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20=D0=B2=D1=85=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D0=B2=20=D0=BE=D0=B1=D1=89=D0=B5=D0=B9=20=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Кнопка «Войти по ключу доступа» тоже подходит под /Войти/u, поэтому Playwright в strict mode находил два элемента и падал на входе — от этого зависели все спеки, которые логинятся через форму (voice, realtime-social и другие), когда панель passkeys успевала отрисоваться. --- web/e2e/support.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/web/e2e/support.ts b/web/e2e/support.ts index 14a54b4..0fcf090 100644 --- a/web/e2e/support.ts +++ b/web/e2e/support.ts @@ -172,7 +172,9 @@ export async function signIn( if (options.totp !== undefined) { await page.getByLabel('Код 2FA или резервный код').fill(totp(options.totp)); } - await page.getByRole('button', { name: /Войти/u }).click(); + // Точное имя: кнопка «Войти по ключу доступа» тоже подходит под /Войти/u, + // и без exact локатор ловил бы два элемента (strict mode). + await page.getByRole('button', { name: 'Войти', exact: true }).click(); try { await expect(page).toHaveURL(/\/app/u, { timeout: 25_000 }); return { context, page };