diff --git a/tests/e2e/07-conversion-funnel.spec.ts b/tests/e2e/07-conversion-funnel.spec.ts index 862af96..f954618 100644 --- a/tests/e2e/07-conversion-funnel.spec.ts +++ b/tests/e2e/07-conversion-funnel.spec.ts @@ -301,26 +301,20 @@ test.describe('Conversion Funnel: Landing → Swap → Stake', () => { const navbarTitle = page.locator('.navbar-title').first(); await navbarTitle.waitFor({ state: 'visible', timeout: 30_000 }); await page.evaluate(() => window.dispatchEvent(new Event('resize'))); - // eslint-disable-next-line no-restricted-syntax -- waitForTimeout: wagmi needs time to settle into disconnected/connected state after provider injection; no observable DOM event signals readiness. See AGENTS.md #Engineering Principles. - await page.waitForTimeout(2_000); - // Check if wallet already connected (wagmi may auto-reconnect from storage) - const alreadyConnected = page.locator('.connect-button--connected').first(); - if (await alreadyConnected.isVisible({ timeout: 1_000 }).catch(() => false)) { + // Wait for wagmi to settle — either connected (auto-reconnect) or disconnected + const anyConnectBtn = page.locator('.connect-button--disconnected, .connect-button--connected').first(); + await anyConnectBtn.waitFor({ state: 'visible', timeout: 15_000 }); + + if (await page.locator('.connect-button--connected').first().isVisible()) { console.log('[DEEPLINK] Wallet already connected (auto-reconnect)'); } else { - // Wait for wagmi to settle into disconnected state and render the connect button - const connectBtn = page.locator('.connect-button--disconnected').first(); - await connectBtn.waitFor({ state: 'visible', timeout: 15_000 }); console.log('[DEEPLINK] Found desktop Connect button, clicking...'); - await connectBtn.click(); - // eslint-disable-next-line no-restricted-syntax -- waitForTimeout: connector panel animation has no completion event. See AGENTS.md #Engineering Principles. - await page.waitForTimeout(1_000); + await page.locator('.connect-button--disconnected').first().click(); const connector = page.locator('.connectors-element').first(); await connector.waitFor({ state: 'visible', timeout: 10_000 }); console.log('[DEEPLINK] Clicking wallet connector...'); await connector.click(); - // Wait for wallet to connect await page.getByText(/0x[a-fA-F0-9]{4}/i).first().waitFor({ state: 'visible', timeout: 15_000 }); console.log('[DEEPLINK] Wallet connected'); }