// @ts-check // Tests: H1 — home page journal feed; AE7 — active-trip header gating const { test, expect } = require('@playwright/test'); // ── H1: Home page renders inline journal posts ───────────────────────────────── // Only meaningful when the site is in "travelling" mode: home.html.twig gates the // active-trip feed on `config.site.travelling`. When it's false the home renders // the between-trips highlights grid instead (no journal feed), so this test would // fail misleadingly. We skip loudly with a reason rather than assert against the // wrong view — the test still runs and validates whenever travelling is on. test('H1: home page shows at least one inline journal-post block', async ({ page }) => { await page.goto('/'); const betweenTrips = await page.locator('.home-highlights-title').count(); test.skip(betweenTrips > 0, 'home is in between-trips mode (site.travelling:false); H1 requires travelling:true'); await expect(page.locator('.journal-post').first()).toBeVisible(); await expect(page.locator('.site-header')).toBeVisible(); }); // ── AE7: the trip-page header extras never leak onto the home route ──────────── // The trip-page one-liner/description/banner are gated to the trip.html.twig // caller of the shared trip-feed-col partial (trip_header_extras, default off); // home's include omits the flag, so its header is unchanged (R12/KTD4). Asserted // as an absence on `/` so it holds whether home is in active-trip or // between-trips mode — the sibling home-highlights suite toggles that mode in a // parallel worker, so this test must not depend on it. test('AE7: home never renders the trip-page header extras', async ({ page }) => { await page.goto('/'); await expect(page.locator('.home-trip-tagline')).toHaveCount(0); await expect(page.locator('.trip-header-desc')).toHaveCount(0); await expect(page.locator('.trip-header-banner')).toHaveCount(0); });