From a95f7f88c2c66744652875a9311b293bccc666a5 Mon Sep 17 00:00:00 2001 From: bymyself Date: Mon, 2 Feb 2026 19:19:13 -0800 Subject: [PATCH] test: use polling pattern to wait for async terminal tab registration Amp-Thread-ID: https://ampcode.com/threads/T-019c217a-e7e3-7209-a479-7f5e779fe7f9 --- browser_tests/tests/bottomPanelShortcuts.spec.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/browser_tests/tests/bottomPanelShortcuts.spec.ts b/browser_tests/tests/bottomPanelShortcuts.spec.ts index 987003e26..9dc683b4f 100644 --- a/browser_tests/tests/bottomPanelShortcuts.spec.ts +++ b/browser_tests/tests/bottomPanelShortcuts.spec.ts @@ -147,9 +147,14 @@ test.describe('Bottom Panel Shortcuts', { tag: '@ui' }, () => { test('should maintain panel state when switching to terminal', async ({ comfyPage }) => { - const logsTab = comfyPage.page.getByRole('tab', { name: /Logs/i }) - await logsTab.waitFor({ state: 'attached', timeout: 5000 }) + // Terminal tabs load asynchronously via dynamic import - wait for registration + // Use expect().toPass() for auto-retry polling pattern + await expect(async () => { + const logsTab = comfyPage.page.getByRole('tab', { name: /Logs/i }) + await expect(logsTab).toBeAttached() + }).toPass({ timeout: 10_000 }) + // Open shortcuts panel await comfyPage.page .locator('button[aria-label*="Keyboard Shortcuts"]') .click() @@ -158,11 +163,15 @@ test.describe('Bottom Panel Shortcuts', { tag: '@ui' }, () => { comfyPage.page.locator('[id*="tab_shortcuts-essentials"]') ).toBeVisible() + // Switch to terminal panel await comfyPage.page .locator('button[aria-label*="Toggle Bottom Panel"]') .click() - await expect(logsTab).toBeVisible() + await expect( + comfyPage.page.getByRole('tab', { name: /Logs/i }) + ).toBeVisible() + // Switch back to shortcuts panel - should remember essentials was active await comfyPage.page .locator('button[aria-label*="Keyboard Shortcuts"]') .click()