From 842bbe44f1cd1dda44615e6f9c38518643a29fc0 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Fri, 12 Sep 2025 16:01:12 -0600 Subject: [PATCH] Update visual regression tests --- .gitea/workflows/ci.yaml | 1 + .runner.pid | 1 + app/not-found.js | 14 ++++++++++ tests/e2e/visual-regression.spec.ts | 42 ++++++++++++++++++++++------- vitest.config.mjs | 9 ++++++- 5 files changed, 56 insertions(+), 11 deletions(-) create mode 100644 .runner.pid create mode 100644 app/not-found.js diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 6a9fa2d..77d2cf1 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -14,6 +14,7 @@ jobs: matrix: { node-version: [18, 20] } env: NODE_OPTIONS: "--max_old_space_size=4096" + CI: true steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 diff --git a/.runner.pid b/.runner.pid new file mode 100644 index 0000000..67f2872 --- /dev/null +++ b/.runner.pid @@ -0,0 +1 @@ +94423 diff --git a/app/not-found.js b/app/not-found.js new file mode 100644 index 0000000..720f7b2 --- /dev/null +++ b/app/not-found.js @@ -0,0 +1,14 @@ +export default function NotFound() { + return ( +
+
+

+ 404 +

+

+ Page Not Found +

+
+
+ ); +} diff --git a/tests/e2e/visual-regression.spec.ts b/tests/e2e/visual-regression.spec.ts index 0bc34b2..1b7de2b 100644 --- a/tests/e2e/visual-regression.spec.ts +++ b/tests/e2e/visual-regression.spec.ts @@ -376,18 +376,40 @@ test.describe("Visual Regression Tests", () => { }); }); - test("error states", async ({ page }) => { - // Test error states by simulating a more controlled error condition - // Instead of blocking resources, we'll simulate a network error state + test("blog listing page", async ({ page }) => { + // Navigate to blog listing page + await page.goto("/blog"); + await page.waitForLoadState("networkidle"); + await settle(page); - // Navigate to a non-existent route to trigger a 404-like state + // Take full page screenshot of blog listing + await expect(page).toHaveScreenshot("blog-listing.png", { + fullPage: true, + animations: "disabled", + }); + }); + + test("blog post page", async ({ page }) => { + // Navigate to a specific blog post + await page.goto("/blog/resolving-active-conflicts"); + await page.waitForLoadState("networkidle"); + await settle(page); + + // Take full page screenshot of blog post + await expect(page).toHaveScreenshot("blog-post.png", { + fullPage: true, + animations: "disabled", + }); + }); + + test("404 error page", async ({ page }) => { + // Navigate to a non-existent route to trigger 404 await page.goto("/non-existent-page"); + await page.waitForLoadState("networkidle"); + await settle(page); - // Wait for page to stabilize - await page.waitForTimeout(2000); - - // Take screenshot of error state - await expect(page).toHaveScreenshot("homepage-error.png", { + // Take screenshot of 404 page + await expect(page).toHaveScreenshot("404-error.png", { animations: "disabled", }); }); @@ -413,7 +435,7 @@ test.describe("Visual Regression Tests", () => { await page.evaluate(() => { document.documentElement.style.setProperty( "--prefers-reduced-motion", - "reduce", + "reduce" ); }); diff --git a/vitest.config.mjs b/vitest.config.mjs index 83c0e50..d9d426b 100644 --- a/vitest.config.mjs +++ b/vitest.config.mjs @@ -43,6 +43,13 @@ export default defineConfig({ thresholds: { lines: 50, functions: 50, statements: 50, branches: 50 }, }, pool: "threads", - testTimeout: 10000, + testTimeout: 30000, // Increased from 10s to 30s for CI environment + hookTimeout: 30000, // Increased hook timeout for CI + teardownTimeout: 30000, // Increased teardown timeout for CI + // CI optimizations + maxConcurrency: process.env.CI ? 2 : 5, // Reduce concurrency in CI + maxThreads: process.env.CI ? 2 : 4, // Reduce threads in CI + minThreads: process.env.CI ? 1 : 2, // Minimum threads in CI + retry: process.env.CI ? 2 : 0, // Retry failed tests in CI }, });