From 2a8c45cea000b146ff08221d78cb8289c6930ee3 Mon Sep 17 00:00:00 2001 From: Simon Larsen Date: Fri, 21 Jun 2024 18:04:09 +0100 Subject: [PATCH] refactor: Improve page load performance with lazy loading for images --- .github/workflows/test.e2e.yaml | 2 -- E2E/Tests/Accounts/Register.spec.ts | 30 +++++++++++++++++++++++------ E2E/playwright.config.ts | 2 +- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.e2e.yaml b/.github/workflows/test.e2e.yaml index 7059865c8d..28feab67b1 100644 --- a/.github/workflows/test.e2e.yaml +++ b/.github/workflows/test.e2e.yaml @@ -32,8 +32,6 @@ jobs: node-version: 18.3.0 - run: npm run prerun && bash ./Tests/Scripts/enable-billing-env-var.sh - run: npm run dev - - name: Sleep for 10 minutes to wait for server to start - run: sleep 600 - name: Wait for server to start run: bash ./Tests/Scripts/status-check.sh http://localhost - name: Run E2E Tests. Run docker container e2e in docker compose file diff --git a/E2E/Tests/Accounts/Register.spec.ts b/E2E/Tests/Accounts/Register.spec.ts index 3671c324cd..e6b8e034a9 100644 --- a/E2E/Tests/Accounts/Register.spec.ts +++ b/E2E/Tests/Accounts/Register.spec.ts @@ -11,7 +11,7 @@ test.describe("Account Registration", () => { } // please make sure the dashboard is up before signing up the user. - const dashboardPageResult: Response | null = await page.goto( + let dashboardPageResult: Response | null = await page.goto( URL.fromString(BASE_URL.toString()).addRoute("/dashboard").toString(), ); @@ -19,19 +19,37 @@ test.describe("Account Registration", () => { dashboardPageResult?.status() === 504 || dashboardPageResult?.status() === 502 ) { - // reload page if it fails to load - await page.reload(); + + try { + // reload page if it fails to load + dashboardPageResult = await page.reload(); + } catch (e) { + // reload page if it fails to load + dashboardPageResult = await page.goto( + URL.fromString(BASE_URL.toString()).addRoute("/dashboard").toString(), + ); + } } - const pageResult: Response | null = await page.goto( + let pageResult: Response | null = await page.goto( URL.fromString(BASE_URL.toString()) .addRoute("/accounts/register") .toString(), ); while (pageResult?.status() === 504 || pageResult?.status() === 502) { - // reload page if it fails to load - await page.reload(); + + try { + // reload page if it fails to load + pageResult = await page.reload(); + } catch (e) { + // reload page if it fails to load + pageResult = await page.goto( + URL.fromString(BASE_URL.toString()) + .addRoute("/accounts/register") + .toString(), + ); + } } await page.getByTestId("email").click(); diff --git a/E2E/playwright.config.ts b/E2E/playwright.config.ts index 20faaf22f7..43060f142e 100644 --- a/E2E/playwright.config.ts +++ b/E2E/playwright.config.ts @@ -12,7 +12,7 @@ import { defineConfig, devices } from "@playwright/test"; export default defineConfig({ testDir: "./Tests", /* Maximum time one test can run for. */ - timeout: 120 * 1000, + timeout: 240 * 1000, // globalTimeout: 600 * 1000, expect: { /**