From 2cba13a8cc8a07b00115bcc4a1bbfb551d9a4dd5 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Mon, 25 May 2026 22:25:54 +0300 Subject: [PATCH] =?UTF-8?q?fix(web-test):=20=D1=8D=D0=BA=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=5Fdet?= =?UTF-8?q?ectPlatformDialogs/=5FclosePlatformDialogs=20=D0=B8=D0=B7=20cor?= =?UTF-8?q?e/errors.mjs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit После A.3 эти helpers стали приватными в core/errors.mjs, но getFormState (browser.mjs:408) и closeForm (browser.mjs:2168) их по-прежнему вызывают — ловили ReferenceError на каждое действие. Делаем их экспортируемыми и импортируем в browser.mjs. Имя с подчёркиванием сохраняется до этапа E.13 (финальная чистка). Регресс 19/19. Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude/skills/web-test/scripts/browser.mjs | 1 + .claude/skills/web-test/scripts/core/errors.mjs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.claude/skills/web-test/scripts/browser.mjs b/.claude/skills/web-test/scripts/browser.mjs index 9f9fd9f9..6abfd02e 100644 --- a/.claude/skills/web-test/scripts/browser.mjs +++ b/.claude/skills/web-test/scripts/browser.mjs @@ -140,6 +140,7 @@ import { } from './core/wait.mjs'; import { closeModals, checkForErrors, dismissPendingErrors, fetchErrorStack, + _detectPlatformDialogs, _closePlatformDialogs, } from './core/errors.mjs'; // Re-export only what was publicly exported before the refactor. // waitForStable/waitForCondition/startNetworkMonitor/closeModals/checkForErrors/ diff --git a/.claude/skills/web-test/scripts/core/errors.mjs b/.claude/skills/web-test/scripts/core/errors.mjs index 13e96233..4e72381f 100644 --- a/.claude/skills/web-test/scripts/core/errors.mjs +++ b/.claude/skills/web-test/scripts/core/errors.mjs @@ -84,7 +84,7 @@ export async function dismissPendingErrors() { * Detect open platform-level dialogs (About, Support Info, Error Report). * Returns array of { type, title? } for each detected dialog, or empty array. */ -async function _detectPlatformDialogs() { +export async function _detectPlatformDialogs() { return await page.evaluate(() => { const result = []; // "О программе" dialog @@ -114,7 +114,7 @@ async function _detectPlatformDialogs() { * These are NOT 1C forms — they are platform UI overlays invisible to getFormState(). * Each close is wrapped in try/catch to avoid cascading failures. */ -async function _closePlatformDialogs() { +export async function _closePlatformDialogs() { await page.evaluate(() => { // "Подробный текст ошибки" OK button (inside error report detail view) // It's a cloud window with its own OK button — look for visible pressDefault in small ps*win