diff --git a/tests/e2e/07-conversion-funnel.spec.ts b/tests/e2e/07-conversion-funnel.spec.ts index 53c1c16..862af96 100644 --- a/tests/e2e/07-conversion-funnel.spec.ts +++ b/tests/e2e/07-conversion-funnel.spec.ts @@ -298,15 +298,27 @@ test.describe('Conversion Funnel: Landing → Swap → Stake', () => { if (hasLocalSwap) { console.log('[DEEPLINK] Local swap mode — connecting wallet first'); // The wallet must be explicitly connected for the swap input to render. - // Navigate to main page to access the connect button, then return. const navbarTitle = page.locator('.navbar-title').first(); await navbarTitle.waitFor({ state: 'visible', timeout: 30_000 }); await page.evaluate(() => window.dispatchEvent(new Event('resize'))); - const connectBtn = page.locator('.connect-button--disconnected').first(); - if (await connectBtn.isVisible({ timeout: 10_000 }).catch(() => false)) { + // 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)) { + 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); 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 });