diff --git a/website/tests/visual/communities.spec.ts b/website/tests/visual/communities.spec.ts index a59ad6c8..4b7ef583 100644 --- a/website/tests/visual/communities.spec.ts +++ b/website/tests/visual/communities.spec.ts @@ -1,16 +1,30 @@ import { test, expect } from '@playwright/test'; -import { auditPage } from './_helpers'; +import { auditPage, hideDynamic } from './_helpers'; +import { stubSupabase } from './fixtures'; test('communities listing', async ({ page }, info) => { await auditPage(page, info, '/communities/'); }); -test('communities search filters cards', async ({ page }) => { +test('communities filter narrows cards', async ({ page }) => { + // Serve the fixed fixture (2 Bengaluru + 1 Mumbai community) so the + // filtered result can't drift with live prod data — the same stub every + // other visual spec uses via auditPage. Must be set up before navigation. + await stubSupabase(page); await page.goto('/communities/', { waitUntil: 'networkidle' }); - const search = page.locator('input[type="search"], input[placeholder*="Search" i]').first(); - if (await search.count()) { - await search.fill('bengaluru'); - await page.waitForTimeout(500); - await expect(page).toHaveScreenshot('communities-search-bengaluru.png', { fullPage: true }); - } + + // Whole fixture renders first. + await expect(page.locator('.community-card')).toHaveCount(3); + + // Use the city dropdown, which filters by exact match (deterministic), + // rather than the fuzzy search box. Selecting Bengaluru narrows to the + // 2 Bengaluru communities. toHaveCount auto-retries until the grid + // re-renders, replacing the old brittle fixed 500 ms sleep. + await page.selectOption('#cityFilter', 'Bengaluru'); + await expect(page.locator('.community-card')).toHaveCount(2); + + // Settle non-deterministic regions (chatbot, animations) before the shot. + await hideDynamic(page); + await page.evaluate(() => (document as any).fonts?.ready); + await expect(page).toHaveScreenshot('communities-filter-bengaluru.png', { fullPage: true }); }); diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-desktop-1440-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-desktop-1440-linux.png new file mode 100644 index 00000000..dd6f37a0 Binary files /dev/null and b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-desktop-1440-linux.png differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-laptop-1024-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-laptop-1024-linux.png new file mode 100644 index 00000000..66e93fab Binary files /dev/null and b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-laptop-1024-linux.png differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-mobile-320-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-mobile-320-linux.png new file mode 100644 index 00000000..3dd2c15a Binary files /dev/null and b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-mobile-320-linux.png differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-mobile-375-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-mobile-375-linux.png new file mode 100644 index 00000000..01a2ec23 Binary files /dev/null and b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-mobile-375-linux.png differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-tablet-768-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-tablet-768-linux.png new file mode 100644 index 00000000..3cce0af1 Binary files /dev/null and b/website/tests/visual/communities.spec.ts-snapshots/communities-filter-bengaluru-tablet-768-linux.png differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-desktop-1440-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-desktop-1440-linux.png deleted file mode 100644 index 371f7203..00000000 Binary files a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-desktop-1440-linux.png and /dev/null differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-laptop-1024-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-laptop-1024-linux.png deleted file mode 100644 index f836a75d..00000000 Binary files a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-laptop-1024-linux.png and /dev/null differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-mobile-320-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-mobile-320-linux.png deleted file mode 100644 index b522d648..00000000 Binary files a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-mobile-320-linux.png and /dev/null differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-mobile-375-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-mobile-375-linux.png deleted file mode 100644 index 967ebbcb..00000000 Binary files a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-mobile-375-linux.png and /dev/null differ diff --git a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-tablet-768-linux.png b/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-tablet-768-linux.png deleted file mode 100644 index 947a1fd7..00000000 Binary files a/website/tests/visual/communities.spec.ts-snapshots/communities-search-bengaluru-tablet-768-linux.png and /dev/null differ