b1ec642d60
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G7CzY4z2Qm5sYE2nySRWuH
48 lines
2.2 KiB
JavaScript
48 lines
2.2 KiB
JavaScript
// @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: trip page has Journal filter button (replaced nav link) ───────────────
|
||
test('N4: trip page filter bar has Journal button', async ({ page }) => {
|
||
await page.goto('/trips/japan-korea-2026');
|
||
await expect(page.locator('.trip-filter-btn[data-filter="journal"]')).toBeVisible();
|
||
});
|
||
|
||
// ── N5: "Map" nav link goes to /map ──────────────────────────────────────────
|
||
test.skip('N5: Map nav link navigates to /map', async ({ page }) => {
|
||
await page.goto('/');
|
||
await page.click('nav a[href*="map"]');
|
||
await expect(page).toHaveURL(/\/map/);
|
||
});
|