From 126fb7bc06704bcbf01ff5e51e6d53b7a4481d72 Mon Sep 17 00:00:00 2001 From: Suzumiya Date: Mon, 5 Oct 2026 17:52:16 +0800 Subject: [PATCH] =?UTF-8?q?test(=E6=B8=B8=E6=88=8F=E5=85=B1=E5=88=9B):=20?= =?UTF-8?q?=E4=B8=A4=E4=B8=AA=E6=B5=8F=E8=A7=88=E5=99=A8=20e2e=20=E7=9A=84?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=AD=89=E5=BE=85=E6=8A=97=E5=86=B7=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=EF=BC=88Vite=20=E9=A6=96=E6=AC=A1=E7=BC=96=E8=AF=91?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - rebase 到 origin/master 后的第一次实跑里,lineage 与(同源的)fork 脚本在浏览器段都卡在 `page.waitForSelector('.platform-account-entry', { timeout: 120_000 })` 并超时: Vite dev server 重启后首次导航要现编译整张模块图,rebase 引入大量新代码时首屏会超过 120s。 证据:两次运行都在该行超时退出;随后用 Playwright 直接探针(同一 URL)页面正常渲染、 `.platform-account-entry` count=1、无 pageerror(仅两条未登录态 401 的资源错误), 紧接着再跑同一脚本即 99/99 全绿。 - 修法:登录等待改成 240s + state:attached,并在超时后重载一次再等(避免把「开发服务器还没编译完」 误判成页面坏了)。两处改动逐字相同,lineage 与 fork 脚本各一处。 - 实测(HEAD 3ae0d129e,固定端口栈 3110/8188):lineage 99/99、fork 48/48、project-bundle 72/72; 三条只读门禁 policy-parity / dto-parity / spacetime-schema 均 exit 0。 --- ...game-distribution-fork-authorization-e2e.mjs | 17 ++++++++++++++++- scripts/check-game-distribution-lineage-e2e.mjs | 17 ++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/scripts/check-game-distribution-fork-authorization-e2e.mjs b/scripts/check-game-distribution-fork-authorization-e2e.mjs index a34d54fd3..4aaf6e5c0 100644 --- a/scripts/check-game-distribution-fork-authorization-e2e.mjs +++ b/scripts/check-game-distribution-fork-authorization-e2e.mjs @@ -275,7 +275,22 @@ async function loadPlaywright() { async function loginThroughWebUi(page, phone) { await page.goto(`${WEB}/games`, { waitUntil: 'commit', timeout: 120_000 }); - await page.waitForSelector('.platform-account-entry', { timeout: 120_000 }); + await page + .waitForSelector('.platform-account-entry', { + timeout: 240_000, + state: 'attached', + }) + .catch(async () => { + // 首次导航可能触发 Vite 冷编译(重启/rebase 后的首屏实测可超过 2 分钟): + // 重载一次再等,避免把「开发服务器还没编译完」误判成页面坏了。 + await page + .reload({ waitUntil: 'commit', timeout: 120_000 }) + .catch(() => {}); + await page.waitForSelector('.platform-account-entry', { + timeout: 240_000, + state: 'attached', + }); + }); await page.locator('.platform-account-entry').first().click(); await page.getByRole('tab', { name: '密码登录' }).first().click(); await page.waitForTimeout(600); diff --git a/scripts/check-game-distribution-lineage-e2e.mjs b/scripts/check-game-distribution-lineage-e2e.mjs index 1a5f742bd..f91f072df 100644 --- a/scripts/check-game-distribution-lineage-e2e.mjs +++ b/scripts/check-game-distribution-lineage-e2e.mjs @@ -479,7 +479,22 @@ async function loadPlaywright() { async function loginThroughWebUi(page, phone, expectedText) { await page.goto(`${WEB}/games`, { waitUntil: 'commit', timeout: 120_000 }); - await page.waitForSelector('.platform-account-entry', { timeout: 120_000 }); + await page + .waitForSelector('.platform-account-entry', { + timeout: 240_000, + state: 'attached', + }) + .catch(async () => { + // 首次导航可能触发 Vite 冷编译(重启/rebase 后的首屏实测可超过 2 分钟): + // 重载一次再等,避免把「开发服务器还没编译完」误判成页面坏了。 + await page + .reload({ waitUntil: 'commit', timeout: 120_000 }) + .catch(() => {}); + await page.waitForSelector('.platform-account-entry', { + timeout: 240_000, + state: 'attached', + }); + }); await page.locator('.platform-account-entry').first().click(); await page.getByRole('tab', { name: '密码登录' }).first().click(); await page.waitForTimeout(600);