// @ts-check // Tests: N1–N5 — page loads and navigation links const { test, expect } = require('@playwright/test'); // ── N1: /trips/japan-korea-2026/dailies renders ─────────────────────────────── test('N1: /trips/japan-korea-2026/dailies page loads with site header', async ({ page }) => { const errors = []; page.on('pageerror', e => errors.push(e.message)); await page.goto('/trips/japan-korea-2026/dailies'); await expect(page.locator('.site-header')).toBeVisible(); await expect(page).toHaveTitle(/Into the East/i); expect(errors).toHaveLength(0); }); // ── N2: /trips/japan-korea-2026/map renders without JS errors ───────────────── test('N2: /trips/japan-korea-2026/map page loads without JS errors', async ({ page }) => { const errors = []; page.on('pageerror', e => errors.push(e.message)); await page.goto('/trips/japan-korea-2026/map'); await expect(page.locator('.site-header')).toBeVisible(); expect(errors).toHaveLength(0); }); // ── N3: /trips/japan-korea-2026/stats renders ───────────────────────────────── test('N3: /trips/japan-korea-2026/stats page loads with site header', async ({ page }) => { const errors = []; page.on('pageerror', e => errors.push(e.message)); await page.goto('/trips/japan-korea-2026/stats'); await expect(page.locator('.site-header')).toBeVisible(); expect(errors).toHaveLength(0); }); // ── N4: "Journal" nav link goes to /dailies ─────────────────────────────────── test('N4: Journal nav link navigates to /dailies', async ({ page }) => { await page.goto('/'); await page.click('nav a[href*="dailies"]'); await expect(page).toHaveURL(/\/dailies/); }); // ── N5: "Map" nav link goes to /map ────────────────────────────────────────── test('N5: Map nav link navigates to /map', async ({ page }) => { await page.goto('/'); await page.click('nav a[href*="map"]'); await expect(page).toHaveURL(/\/map/); });