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