From f4dbac6fc24a7e702a5bcde6e83d06c12b6970c0 Mon Sep 17 00:00:00 2001 From: Mischa Date: Sun, 5 Jul 2026 23:42:55 +0200 Subject: [PATCH] test(home,maps): skip travelling-gated H1/M8 with a stated reason MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit H1 (home journal feed) and M8 (home journey map source) only apply when config.site.travelling is true — home.html.twig otherwise renders the between-trips highlights grid, which has neither. They now detect that mode (.home-highlights-title) and test.skip() with an explicit reason instead of failing misleadingly, so they still run and validate whenever travelling is on. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Mpdu3Dt1iVoozHwAMyjrbn --- tests/ui/home/home.spec.js | 7 +++++++ tests/ui/maps/maps.spec.js | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/ui/home/home.spec.js b/tests/ui/home/home.spec.js index ce1dde2..0a79a97 100644 --- a/tests/ui/home/home.spec.js +++ b/tests/ui/home/home.spec.js @@ -3,8 +3,15 @@ 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(); }); diff --git a/tests/ui/maps/maps.spec.js b/tests/ui/maps/maps.spec.js index 41fce8d..4fcac32 100644 --- a/tests/ui/maps/maps.spec.js +++ b/tests/ui/maps/maps.spec.js @@ -40,12 +40,17 @@ test('M7: clicking map marker briefly highlights the corresponding entry card', // ── M8: Home map has GPX journey source on active trip ──────────────────────── test('M8: home map has a journey source after GPX settles (active trip)', async ({ page }) => { - // Requires travelling: true in user/config/site.yaml. - // Requires GPX files attached to the active trip (italy-2026-demo has 7). + // Requires travelling: true in user/config/site.yaml — home.html.twig only + // renders the active-trip journey map (home-journey / home-gpx-0 sources) in + // that mode. With travelling:false the home shows the between-trips highlights + // map, which has neither source, so we skip loudly rather than fail misleadingly. + // Also requires GPX files attached to the active trip (italy-2026-demo has 7). const errors = []; page.on('pageerror', e => errors.push(e.message)); 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); M8 requires travelling:true'); await expect(page.locator('#home-map canvas.maplibregl-canvas')).toBeVisible({ timeout: 10000 }); await expect(page.locator('#home-map .maplibregl-marker').first()).toBeVisible({ timeout: 15000 });