From 589b139f1fc063e973ccd341f60d5b8022bb263d Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Tue, 25 Aug 2026 12:28:22 +0800 Subject: [PATCH] test(pi): select packaged resilience target deterministically --- scripts/run-pi-subagent-packaged-smoke.mjs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/scripts/run-pi-subagent-packaged-smoke.mjs b/scripts/run-pi-subagent-packaged-smoke.mjs index 86cc8d7..f00857c 100644 --- a/scripts/run-pi-subagent-packaged-smoke.mjs +++ b/scripts/run-pi-subagent-packaged-smoke.mjs @@ -427,10 +427,27 @@ export async function runPackagedProductProof(options) { await page.getByTestId('main-layout').waitFor({ state: 'visible', timeout: 10_000 }); } await page.evaluate(() => { window.location.hash = '/chat'; }); + const resilienceTarget = page.locator('aside').getByRole('button', { + name: 'Resilience fault target', + exact: true, + }); + await resilienceTarget.waitFor({ state: 'visible', timeout: 30_000 }); + await resilienceTarget.click(); const resilienceComposer = page.getByRole('textbox'); await resilienceComposer.waitFor({ state: 'visible', timeout: 30_000 }); await resilienceComposer.fill('RESILIENCE_TARGET_ACTIVE'); - await page.getByRole('button', { name: '发送' }).click({ timeout: 30_000 }); + try { + await page.getByRole('button', { name: '发送' }).click({ timeout: 30_000 }); + } catch (error) { + const [bodyText, status] = await Promise.all([ + page.locator('body').innerText().catch(() => ''), + evaluateProof(electronApplication, 'resilience.status').catch(() => null), + ]); + throw new Error( + `${error instanceof Error ? error.message : String(error)}; ` + + `UI=${bodyText}; resilience=${JSON.stringify(status?.resilience ?? status)}`, + ); + } const activeResilience = await waitForResilienceProof( electronApplication,