// @ts-check // Tests: N1–N4 — page loads and navigation links. // The standalone /map, /stats and /dailies views were retired; their content now // lives on the trip page. N1/N2 are smoke tests for the two live landing surfaces. const { test, expect } = require('@playwright/test'); // ── N1: Trip page renders with site header ─────────────────────────────────── test('N1: trip page loads with site header and title', async ({ page }) => { const errors = []; page.on('pageerror', e => errors.push(e.message)); await page.goto('/trips/italy-2026-demo'); await expect(page.locator('.site-header')).toBeVisible(); await expect(page).toHaveTitle(/Into the East/i); expect(errors).toHaveLength(0); }); // ── N2: Home page renders without JS errors ────────────────────────────────── test('N2: home page loads with site header and no JS errors', async ({ page }) => { const errors = []; page.on('pageerror', e => errors.push(e.message)); await page.goto('/'); await expect(page.locator('.site-header')).toBeVisible(); expect(errors).toHaveLength(0); }); // ── N4: trip page has Journal filter button (replaced the old sub-page nav link) ─ test('N4: trip page filter bar has Journal button', async ({ page }) => { await page.goto('/trips/italy-2026-demo'); await expect(page.locator('.trip-filter-btn[data-filter="journal"]')).toBeVisible(); });