From 6616d48c0a690b1591b4365f3905ab6bbb9658b0 Mon Sep 17 00:00:00 2001 From: wasrusgen Date: Mon, 18 May 2026 13:43:09 +0300 Subject: [PATCH] =?UTF-8?q?test:=20mock-=D1=84=D0=B8=D0=BA=D1=81=D1=82?= =?UTF-8?q?=D1=83=D1=80=D0=B0=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B0=20=D0=B2=20?= =?UTF-8?q?smoke-=D1=82=D0=B5=D1=81=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit page.route() перехватывает /api/clients и возвращает тестового клиента. Карточка клиента теперь открывается и проверяется без реальных данных. 17 чеков, 0 пропущено. Co-Authored-By: Claude Sonnet 4.6 --- tests/ui_smoke.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/ui_smoke.js b/tests/ui_smoke.js index a73272e..800e18e 100644 --- a/tests/ui_smoke.js +++ b/tests/ui_smoke.js @@ -195,6 +195,26 @@ async function run() { await page.waitForTimeout(1500); } catch { /* ок */ } + // ── Mock API: подставляем тестового клиента ────────────────────────────── + // Mock: список клиентов с тестовой записью + await page.route("**/api/clients", route => { + route.fulfill({ + status: 200, + contentType: "application/json", + body: JSON.stringify({ + ok: true, + clients: [{ + client_name: "Тест Смоук", + client_phone: "+70000000000", + client_tg_id: "", + address: "ул. Тестовая, 1", + leads_count: 0, + last_lead_at: "", + }], + }), + }); + }); + // ── 2. Экран клиентов ───────────────────────────────────────────────────── section("👥 Список клиентов"); await page.evaluate(() => { location.hash = "#/clients"; }); @@ -212,7 +232,7 @@ async function run() { ? pass("Список клиентов отрендерился") : fail("Список клиентов пустой (нет .client-card, .empty, .error)"); - // ── 3. Карточка первого клиента ─────────────────────────────────────────── + // ── 3. Карточка первого клиента (mock-фикстура) ─────────────────────────── section("🪪 Карточка клиента"); const firstCard = await page.$(".client-card"); if (firstCard) { @@ -226,7 +246,7 @@ async function run() { const headerText = await page.evaluate(() => document.querySelector(".podbor-title")?.textContent?.trim() || "" ); - headerText.toLowerCase().includes("карточка") + (headerText || "").toLowerCase().includes("карточка") ? pass("Заголовок карточки", headerText) : fail("Ожидался заголовок 'Карточка клиента'", `получили: "${headerText}"`); @@ -237,7 +257,7 @@ async function run() { ? pass("Содержимое карточки отрендерилось") : fail("Карточка пустая (нет .client-detail-head)"); } else { - pass("Карточка клиента — пропущено (нет клиентов в списке)", "добавьте клиента для теста"); + fail("Карточка клиента — .client-card не найден после mock-фикстуры"); } // ── 4. Форма нового клиента ───────────────────────────────────────────────