From 87a87543ac7763f387403590f0c6ce4338bfb069 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 13:12:08 +0000 Subject: [PATCH 1/9] Initial plan From 3e8002f946403804e3fcaa2f96d83f21c6058f53 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 13:19:03 +0000 Subject: [PATCH 2/9] Skip failing Beach Club landing page test - page returns 404 --- testsEarnProtocol/noWallet/header.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testsEarnProtocol/noWallet/header.spec.ts b/testsEarnProtocol/noWallet/header.spec.ts index cdd2c663..5e481b27 100644 --- a/testsEarnProtocol/noWallet/header.spec.ts +++ b/testsEarnProtocol/noWallet/header.spec.ts @@ -111,7 +111,8 @@ test.describe('Header - App @regression', async () => { await app.header.support.shouldHave(['Email support', 'Join the Discord Community']); }); - test('It should open Beach Club landing page', async ({ app }) => { + // SKIP - TO BE UPDATED + test.skip('It should open Beach Club landing page', async ({ app }) => { await app.header.beachClub(); await app.beachClubLandingPage.shouldBeVisible(); }); From 0c314c9df8100963fd3e2ab6996a69cc7b920659 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 13:34:54 +0000 Subject: [PATCH 3/9] Add global page load retry via openPage() method; unskip beach club test --- srcEarnProtocol/app.ts | 9 +++++++++ srcEarnProtocol/fixtures/noWallet.ts | 19 +------------------ .../fixtures/withRealWalletArbitrum.ts | 4 +--- .../fixtures/withRealWalletBase.ts | 4 +--- .../fixtures/withRealWalletHyperliquid.ts | 4 +--- .../fixtures/withRealWalletSonic.ts | 4 +--- .../fixtures/withTestWalletArbitrum.ts | 4 +--- .../fixtures/withTestWalletBase.ts | 4 +--- testsEarnProtocol/noWallet/header.spec.ts | 3 +-- 9 files changed, 17 insertions(+), 38 deletions(-) diff --git a/srcEarnProtocol/app.ts b/srcEarnProtocol/app.ts index 1154f29d..cd955ea0 100644 --- a/srcEarnProtocol/app.ts +++ b/srcEarnProtocol/app.ts @@ -1,6 +1,7 @@ import { expect } from '#earnProtocolFixtures'; import { step } from '#noWalletFixtures'; import { Page } from '@playwright/test'; +import { expectDefaultTimeout } from 'utils/config'; import { Banners } from './banners'; import { Modals } from './modals'; import { @@ -95,6 +96,14 @@ export class App { await this.page.pause(); } + @step + async openPage() { + await expect(async () => { + await this.page.goto('', { timeout: expectDefaultTimeout * 2 }); + await this.waitForAppToBeStable(); + }).toPass(); + } + @step async waitForAppToBeStable() { await expect(async () => { diff --git a/srcEarnProtocol/fixtures/noWallet.ts b/srcEarnProtocol/fixtures/noWallet.ts index 0312a998..eb3b3ebd 100644 --- a/srcEarnProtocol/fixtures/noWallet.ts +++ b/srcEarnProtocol/fixtures/noWallet.ts @@ -11,9 +11,6 @@ export const test = base.extend({ async ({ page, context }, use) => { const app = new App(page); - await app.page.goto(''); - - // Remove cookies banner await context.addCookies([ { name: 'analyticsCookie', @@ -22,22 +19,8 @@ export const test = base.extend({ url: earnProtocolBaseUrl, }, ]); - // await app.waitForAppToBeStable(); - // await app.page.reload(); - - // // - // console.log('=== earnProtocolBaseUrl: ', earnProtocolBaseUrl); - // // - // // Close 'Go to Beach Club' banner in staging - // // - This is working locally on prod too, but not in github runs - // if (earnProtocolBaseUrl.includes('staging')) { - // await app.page - // .locator('[class*="_floatingBannerContainer"]') - // .getByRole('button') - // .filter({ has: app.page.locator('svg[title="close"]') }) - // .click(); - // } + await app.openPage(); await use(app); diff --git a/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts b/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts index 79e84eff..dcd71bce 100644 --- a/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts +++ b/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts @@ -10,8 +10,6 @@ export const test = metaMaskFixtures(arbitrumRealWalletSetup).extend<{ async ({ page, context }, use) => { const app = new App(page); - await app.page.goto(''); - await context.addCookies([ { name: 'analyticsCookie', @@ -21,7 +19,7 @@ export const test = metaMaskFixtures(arbitrumRealWalletSetup).extend<{ }, ]); - await app.waitForAppToBeStable(); + await app.openPage(); await use(app); diff --git a/srcEarnProtocol/fixtures/withRealWalletBase.ts b/srcEarnProtocol/fixtures/withRealWalletBase.ts index e915b9e2..c1430320 100644 --- a/srcEarnProtocol/fixtures/withRealWalletBase.ts +++ b/srcEarnProtocol/fixtures/withRealWalletBase.ts @@ -10,8 +10,6 @@ export const test = metaMaskFixtures(baseRealWalletSetup).extend<{ async ({ page, context }, use) => { const app = new App(page); - await app.page.goto(''); - await context.addCookies([ { name: 'analyticsCookie', @@ -21,7 +19,7 @@ export const test = metaMaskFixtures(baseRealWalletSetup).extend<{ }, ]); - await app.waitForAppToBeStable(); + await app.openPage(); await use(app); diff --git a/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts b/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts index b97f387b..0fb1bd91 100644 --- a/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts +++ b/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts @@ -10,8 +10,6 @@ export const test = metaMaskFixtures(hyperliquidRealWalletSetup).extend<{ async ({ page, context }, use) => { const app = new App(page); - await app.page.goto(''); - await context.addCookies([ { name: 'analyticsCookie', @@ -21,7 +19,7 @@ export const test = metaMaskFixtures(hyperliquidRealWalletSetup).extend<{ }, ]); - await app.waitForAppToBeStable(); + await app.openPage(); await use(app); diff --git a/srcEarnProtocol/fixtures/withRealWalletSonic.ts b/srcEarnProtocol/fixtures/withRealWalletSonic.ts index 150d99da..cdb1427b 100644 --- a/srcEarnProtocol/fixtures/withRealWalletSonic.ts +++ b/srcEarnProtocol/fixtures/withRealWalletSonic.ts @@ -10,8 +10,6 @@ export const test = metaMaskFixtures(sonicRealWalletSetup).extend<{ async ({ page, context }, use) => { const app = new App(page); - await app.page.goto(''); - await context.addCookies([ { name: 'analyticsCookie', @@ -21,7 +19,7 @@ export const test = metaMaskFixtures(sonicRealWalletSetup).extend<{ }, ]); - await app.waitForAppToBeStable(); + await app.openPage(); await use(app); diff --git a/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts b/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts index 7e5c3fd5..d65f2e22 100644 --- a/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts +++ b/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts @@ -10,8 +10,6 @@ export const test = metaMaskFixtures(arbitrumSetup).extend<{ async ({ page, context }, use) => { const app = new App(page); - await app.page.goto(''); - await context.addCookies([ { name: 'analyticsCookie', @@ -21,7 +19,7 @@ export const test = metaMaskFixtures(arbitrumSetup).extend<{ }, ]); - await app.waitForAppToBeStable(); + await app.openPage(); await use(app); diff --git a/srcEarnProtocol/fixtures/withTestWalletBase.ts b/srcEarnProtocol/fixtures/withTestWalletBase.ts index dc5533bd..12287917 100644 --- a/srcEarnProtocol/fixtures/withTestWalletBase.ts +++ b/srcEarnProtocol/fixtures/withTestWalletBase.ts @@ -10,8 +10,6 @@ export const test = metaMaskFixtures(baseSetup).extend<{ async ({ page, context }, use) => { const app = new App(page); - await app.page.goto(''); - await context.addCookies([ { name: 'analyticsCookie', @@ -21,7 +19,7 @@ export const test = metaMaskFixtures(baseSetup).extend<{ }, ]); - await app.waitForAppToBeStable(); + await app.openPage(); await use(app); diff --git a/testsEarnProtocol/noWallet/header.spec.ts b/testsEarnProtocol/noWallet/header.spec.ts index 5e481b27..cdd2c663 100644 --- a/testsEarnProtocol/noWallet/header.spec.ts +++ b/testsEarnProtocol/noWallet/header.spec.ts @@ -111,8 +111,7 @@ test.describe('Header - App @regression', async () => { await app.header.support.shouldHave(['Email support', 'Join the Discord Community']); }); - // SKIP - TO BE UPDATED - test.skip('It should open Beach Club landing page', async ({ app }) => { + test('It should open Beach Club landing page', async ({ app }) => { await app.header.beachClub(); await app.beachClubLandingPage.shouldBeVisible(); }); From 55299825ee84f97566e5b2551b37521065aaf14c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 13:39:01 +0000 Subject: [PATCH 4/9] Use 5-retry quadratic backoff in openPage() (3s, 12s, 27s, 48s, 75s); increase fixture timeout --- srcEarnProtocol/app.ts | 6 +++++- srcEarnProtocol/fixtures/noWallet.ts | 2 +- srcEarnProtocol/fixtures/withRealWalletArbitrum.ts | 2 +- srcEarnProtocol/fixtures/withRealWalletBase.ts | 2 +- srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts | 2 +- srcEarnProtocol/fixtures/withRealWalletSonic.ts | 2 +- srcEarnProtocol/fixtures/withTestWalletArbitrum.ts | 2 +- srcEarnProtocol/fixtures/withTestWalletBase.ts | 2 +- 8 files changed, 12 insertions(+), 8 deletions(-) diff --git a/srcEarnProtocol/app.ts b/srcEarnProtocol/app.ts index cd955ea0..8a41d300 100644 --- a/srcEarnProtocol/app.ts +++ b/srcEarnProtocol/app.ts @@ -98,10 +98,14 @@ export class App { @step async openPage() { + const retryIntervals = [1, 2, 3, 4, 5].map((n) => 3_000 * n * n); await expect(async () => { await this.page.goto('', { timeout: expectDefaultTimeout * 2 }); await this.waitForAppToBeStable(); - }).toPass(); + }).toPass({ + intervals: retryIntervals, + timeout: 360_000, + }); } @step diff --git a/srcEarnProtocol/fixtures/noWallet.ts b/srcEarnProtocol/fixtures/noWallet.ts index eb3b3ebd..ac8576d5 100644 --- a/srcEarnProtocol/fixtures/noWallet.ts +++ b/srcEarnProtocol/fixtures/noWallet.ts @@ -26,7 +26,7 @@ export const test = base.extend({ await app.page.close(); }, - { timeout: 50000 }, + { timeout: 360_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts b/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts index dcd71bce..78e80389 100644 --- a/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts +++ b/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(arbitrumRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: 50000 }, + { timeout: 360_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletBase.ts b/srcEarnProtocol/fixtures/withRealWalletBase.ts index c1430320..88b8b4e8 100644 --- a/srcEarnProtocol/fixtures/withRealWalletBase.ts +++ b/srcEarnProtocol/fixtures/withRealWalletBase.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(baseRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: 50000 }, + { timeout: 360_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts b/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts index 0fb1bd91..6b8eda58 100644 --- a/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts +++ b/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(hyperliquidRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: 50000 }, + { timeout: 360_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletSonic.ts b/srcEarnProtocol/fixtures/withRealWalletSonic.ts index cdb1427b..a1b135ff 100644 --- a/srcEarnProtocol/fixtures/withRealWalletSonic.ts +++ b/srcEarnProtocol/fixtures/withRealWalletSonic.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(sonicRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: 50000 }, + { timeout: 360_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts b/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts index d65f2e22..22f71aa2 100644 --- a/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts +++ b/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(arbitrumSetup).extend<{ await app.page.close(); }, - { timeout: 50000 }, + { timeout: 360_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withTestWalletBase.ts b/srcEarnProtocol/fixtures/withTestWalletBase.ts index 12287917..3a0fa61c 100644 --- a/srcEarnProtocol/fixtures/withTestWalletBase.ts +++ b/srcEarnProtocol/fixtures/withTestWalletBase.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(baseSetup).extend<{ await app.page.close(); }, - { timeout: 50000 }, + { timeout: 360_000 }, ], }); From 13f60511e455c6cf71c74496aca6fea4bb1775c8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 13:41:08 +0000 Subject: [PATCH 5/9] Add openPageTimeout constant; document quadratic backoff formula in openPage() --- srcEarnProtocol/app.ts | 5 +++-- srcEarnProtocol/fixtures/noWallet.ts | 4 ++-- srcEarnProtocol/fixtures/withRealWalletArbitrum.ts | 4 ++-- srcEarnProtocol/fixtures/withRealWalletBase.ts | 4 ++-- srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts | 4 ++-- srcEarnProtocol/fixtures/withRealWalletSonic.ts | 4 ++-- srcEarnProtocol/fixtures/withTestWalletArbitrum.ts | 4 ++-- srcEarnProtocol/fixtures/withTestWalletBase.ts | 4 ++-- utils/config.ts | 2 ++ 9 files changed, 19 insertions(+), 16 deletions(-) diff --git a/srcEarnProtocol/app.ts b/srcEarnProtocol/app.ts index 8a41d300..3c4699b9 100644 --- a/srcEarnProtocol/app.ts +++ b/srcEarnProtocol/app.ts @@ -1,7 +1,7 @@ import { expect } from '#earnProtocolFixtures'; import { step } from '#noWalletFixtures'; import { Page } from '@playwright/test'; -import { expectDefaultTimeout } from 'utils/config'; +import { expectDefaultTimeout, openPageTimeout } from 'utils/config'; import { Banners } from './banners'; import { Modals } from './modals'; import { @@ -98,13 +98,14 @@ export class App { @step async openPage() { + // Quadratic backoff: 3*n² seconds per retry → 3s, 12s, 27s, 48s, 75s const retryIntervals = [1, 2, 3, 4, 5].map((n) => 3_000 * n * n); await expect(async () => { await this.page.goto('', { timeout: expectDefaultTimeout * 2 }); await this.waitForAppToBeStable(); }).toPass({ intervals: retryIntervals, - timeout: 360_000, + timeout: openPageTimeout, }); } diff --git a/srcEarnProtocol/fixtures/noWallet.ts b/srcEarnProtocol/fixtures/noWallet.ts index ac8576d5..e2e79dc8 100644 --- a/srcEarnProtocol/fixtures/noWallet.ts +++ b/srcEarnProtocol/fixtures/noWallet.ts @@ -1,6 +1,6 @@ import { test as base } from '@playwright/test'; import { App } from '../app'; -import { earnProtocolBaseUrl } from 'utils/config'; +import { earnProtocolBaseUrl, openPageTimeout } from 'utils/config'; type MyFixtures = { app: App; @@ -26,7 +26,7 @@ export const test = base.extend({ await app.page.close(); }, - { timeout: 360_000 }, + { timeout: openPageTimeout }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts b/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts index 78e80389..0539533b 100644 --- a/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts +++ b/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts @@ -1,7 +1,7 @@ import { metaMaskFixtures } from '@synthetixio/synpress/playwright'; import arbitrumRealWalletSetup from '../../utils/synpress/real-wallet-setup/arbitrumRealWallet.setup'; import { App } from '../app'; -import { earnProtocolBaseUrl } from 'utils/config'; +import { earnProtocolBaseUrl, openPageTimeout } from 'utils/config'; export const test = metaMaskFixtures(arbitrumRealWalletSetup).extend<{ app: App; @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(arbitrumRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: 360_000 }, + { timeout: openPageTimeout }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletBase.ts b/srcEarnProtocol/fixtures/withRealWalletBase.ts index 88b8b4e8..0e7b5fd4 100644 --- a/srcEarnProtocol/fixtures/withRealWalletBase.ts +++ b/srcEarnProtocol/fixtures/withRealWalletBase.ts @@ -1,7 +1,7 @@ import { metaMaskFixtures } from '@synthetixio/synpress/playwright'; import baseRealWalletSetup from '../../utils/synpress/real-wallet-setup/baseRealWallet.setup'; import { App } from '../app'; -import { earnProtocolBaseUrl } from 'utils/config'; +import { earnProtocolBaseUrl, openPageTimeout } from 'utils/config'; export const test = metaMaskFixtures(baseRealWalletSetup).extend<{ app: App; @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(baseRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: 360_000 }, + { timeout: openPageTimeout }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts b/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts index 6b8eda58..6715d451 100644 --- a/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts +++ b/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts @@ -1,7 +1,7 @@ import { metaMaskFixtures } from '@synthetixio/synpress/playwright'; import hyperliquidRealWalletSetup from '../../utils/synpress/real-wallet-setup/hyperliquidRealWallet.setup'; import { App } from '../app'; -import { earnProtocolBaseUrl } from 'utils/config'; +import { earnProtocolBaseUrl, openPageTimeout } from 'utils/config'; export const test = metaMaskFixtures(hyperliquidRealWalletSetup).extend<{ app: App; @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(hyperliquidRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: 360_000 }, + { timeout: openPageTimeout }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletSonic.ts b/srcEarnProtocol/fixtures/withRealWalletSonic.ts index a1b135ff..ccbf3c5f 100644 --- a/srcEarnProtocol/fixtures/withRealWalletSonic.ts +++ b/srcEarnProtocol/fixtures/withRealWalletSonic.ts @@ -1,7 +1,7 @@ import { metaMaskFixtures } from '@synthetixio/synpress/playwright'; import sonicRealWalletSetup from '../../utils/synpress/real-wallet-setup/sonicRealWallet.setup'; import { App } from '../app'; -import { earnProtocolBaseUrl } from 'utils/config'; +import { earnProtocolBaseUrl, openPageTimeout } from 'utils/config'; export const test = metaMaskFixtures(sonicRealWalletSetup).extend<{ app: App; @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(sonicRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: 360_000 }, + { timeout: openPageTimeout }, ], }); diff --git a/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts b/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts index 22f71aa2..c24524db 100644 --- a/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts +++ b/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts @@ -1,7 +1,7 @@ import { metaMaskFixtures } from '@synthetixio/synpress/playwright'; import arbitrumSetup from '../../utils/synpress/test-wallet-setup/arbitrum.setup'; import { App } from '../app'; -import { earnProtocolBaseUrl } from 'utils/config'; +import { earnProtocolBaseUrl, openPageTimeout } from 'utils/config'; export const test = metaMaskFixtures(arbitrumSetup).extend<{ app: App; @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(arbitrumSetup).extend<{ await app.page.close(); }, - { timeout: 360_000 }, + { timeout: openPageTimeout }, ], }); diff --git a/srcEarnProtocol/fixtures/withTestWalletBase.ts b/srcEarnProtocol/fixtures/withTestWalletBase.ts index 3a0fa61c..29837152 100644 --- a/srcEarnProtocol/fixtures/withTestWalletBase.ts +++ b/srcEarnProtocol/fixtures/withTestWalletBase.ts @@ -1,7 +1,7 @@ import { metaMaskFixtures } from '@synthetixio/synpress/playwright'; import baseSetup from '../../utils/synpress/test-wallet-setup/base.setup'; import { App } from '../app'; -import { earnProtocolBaseUrl } from 'utils/config'; +import { earnProtocolBaseUrl, openPageTimeout } from 'utils/config'; export const test = metaMaskFixtures(baseSetup).extend<{ app: App; @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(baseSetup).extend<{ await app.page.close(); }, - { timeout: 360_000 }, + { timeout: openPageTimeout }, ], }); diff --git a/utils/config.ts b/utils/config.ts index da4c135c..8eb13d10 100644 --- a/utils/config.ts +++ b/utils/config.ts @@ -27,6 +27,8 @@ export const extremelyLongTestTimeout: number = export const gigaTestTimeout: number = baseUrl.includes('localhost') || baseUrl.includes('3000.csb.app') ? 400_000 : 360_000; +export const openPageTimeout: number = 360_000; + export const positionTimeout: number = baseUrl.includes('localhost') || baseUrl.includes('3000.csb.app') ? 60_000 : 45_000; From 720ff2fa7bd986fcc064af333f0121a33363bfa7 Mon Sep 17 00:00:00 2001 From: Piotr Witek <739075+piotrwitek@users.noreply.github.com> Date: Sat, 4 Jul 2026 15:51:26 +0200 Subject: [PATCH 6/9] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/config.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/config.ts b/utils/config.ts index 8eb13d10..2079e7f5 100644 --- a/utils/config.ts +++ b/utils/config.ts @@ -27,7 +27,10 @@ export const extremelyLongTestTimeout: number = export const gigaTestTimeout: number = baseUrl.includes('localhost') || baseUrl.includes('3000.csb.app') ? 400_000 : 360_000; -export const openPageTimeout: number = 360_000; +export const openPageTimeout: number = + earnProtocolBaseUrl.includes('localhost') || earnProtocolBaseUrl.includes('3000.csb.app') + ? 400_000 + : 360_000; export const positionTimeout: number = baseUrl.includes('localhost') || baseUrl.includes('3000.csb.app') ? 60_000 : 45_000; From c0850a33ccfc6e7956a06d776e131555636654ea Mon Sep 17 00:00:00 2001 From: Piotr Witek <739075+piotrwitek@users.noreply.github.com> Date: Sat, 4 Jul 2026 15:52:50 +0200 Subject: [PATCH 7/9] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- srcEarnProtocol/app.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcEarnProtocol/app.ts b/srcEarnProtocol/app.ts index 3c4699b9..ad612eb4 100644 --- a/srcEarnProtocol/app.ts +++ b/srcEarnProtocol/app.ts @@ -101,7 +101,7 @@ export class App { // Quadratic backoff: 3*n² seconds per retry → 3s, 12s, 27s, 48s, 75s const retryIntervals = [1, 2, 3, 4, 5].map((n) => 3_000 * n * n); await expect(async () => { - await this.page.goto('', { timeout: expectDefaultTimeout * 2 }); + await this.page.goto('', { timeout: expectDefaultTimeout * 3 }); await this.waitForAppToBeStable(); }).toPass({ intervals: retryIntervals, From 66f7ac332e35b701b8a7fcf30958deb73bf93dbb Mon Sep 17 00:00:00 2001 From: Piotr Witek <739075+piotrwitek@users.noreply.github.com> Date: Sat, 4 Jul 2026 15:53:38 +0200 Subject: [PATCH 8/9] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- srcEarnProtocol/fixtures/noWallet.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcEarnProtocol/fixtures/noWallet.ts b/srcEarnProtocol/fixtures/noWallet.ts index e2e79dc8..1a6960e8 100644 --- a/srcEarnProtocol/fixtures/noWallet.ts +++ b/srcEarnProtocol/fixtures/noWallet.ts @@ -26,7 +26,7 @@ export const test = base.extend({ await app.page.close(); }, - { timeout: openPageTimeout }, + { timeout: openPageTimeout + 5_000 }, ], }); From 51349b13227fac1e03ea22891a50d5bde02f619e Mon Sep 17 00:00:00 2001 From: Piotr Witek <739075+piotrwitek@users.noreply.github.com> Date: Sat, 4 Jul 2026 15:54:40 +0200 Subject: [PATCH 9/9] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- srcEarnProtocol/fixtures/withRealWalletArbitrum.ts | 2 +- srcEarnProtocol/fixtures/withRealWalletBase.ts | 2 +- srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts | 2 +- srcEarnProtocol/fixtures/withRealWalletSonic.ts | 2 +- srcEarnProtocol/fixtures/withTestWalletArbitrum.ts | 2 +- srcEarnProtocol/fixtures/withTestWalletBase.ts | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts b/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts index 0539533b..4a11f206 100644 --- a/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts +++ b/srcEarnProtocol/fixtures/withRealWalletArbitrum.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(arbitrumRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: openPageTimeout }, + { timeout: openPageTimeout + 5_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletBase.ts b/srcEarnProtocol/fixtures/withRealWalletBase.ts index 0e7b5fd4..d6797c2a 100644 --- a/srcEarnProtocol/fixtures/withRealWalletBase.ts +++ b/srcEarnProtocol/fixtures/withRealWalletBase.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(baseRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: openPageTimeout }, + { timeout: openPageTimeout + 5_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts b/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts index 6715d451..6365dae4 100644 --- a/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts +++ b/srcEarnProtocol/fixtures/withRealWalletHyperliquid.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(hyperliquidRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: openPageTimeout }, + { timeout: openPageTimeout + 5_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withRealWalletSonic.ts b/srcEarnProtocol/fixtures/withRealWalletSonic.ts index ccbf3c5f..ff0d5642 100644 --- a/srcEarnProtocol/fixtures/withRealWalletSonic.ts +++ b/srcEarnProtocol/fixtures/withRealWalletSonic.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(sonicRealWalletSetup).extend<{ await app.page.close(); }, - { timeout: openPageTimeout }, + { timeout: openPageTimeout + 5_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts b/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts index c24524db..f22c1c96 100644 --- a/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts +++ b/srcEarnProtocol/fixtures/withTestWalletArbitrum.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(arbitrumSetup).extend<{ await app.page.close(); }, - { timeout: openPageTimeout }, + { timeout: openPageTimeout + 5_000 }, ], }); diff --git a/srcEarnProtocol/fixtures/withTestWalletBase.ts b/srcEarnProtocol/fixtures/withTestWalletBase.ts index 29837152..b840d8c3 100644 --- a/srcEarnProtocol/fixtures/withTestWalletBase.ts +++ b/srcEarnProtocol/fixtures/withTestWalletBase.ts @@ -25,7 +25,7 @@ export const test = metaMaskFixtures(baseSetup).extend<{ await app.page.close(); }, - { timeout: openPageTimeout }, + { timeout: openPageTimeout + 5_000 }, ], });