From 6ba7254344724e8e65985cbc08ac469c2eacf0a9 Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 11 May 2026 17:00:54 +0200 Subject: [PATCH] test(ci): assert prerender output is only /hilfe/transkription Addresses Sara's review request on #515. Without this gate, a future regression that turns prerender.crawl back on (or adds a new prerender entry whose nav links into protected routes) would silently bake /, /documents, /persons etc. to "redirect-to-login" HTML and re-introduce #514. Verified the script catches the current broken build state: $ find build/prerendered ... -not -path 'hilfe/*' ... build/prerendered/{index,documents,persons,geschichten,stammbaum}.html Co-Authored-By: Claude Opus 4.7 --- .gitea/workflows/ci.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index d48d6a48..00ebf695 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -59,6 +59,29 @@ jobs: run: npm run build working-directory: frontend + # ── Prerender output is exactly the public help page ─────────────────── + # SvelteKit prerender + crawl follows nav links and bakes "redirect to + # /login" HTML for every protected route, served BEFORE runtime hooks + # (see #514). With `crawl: false` only the explicit entry should land + # in build/prerendered/. Anything else is a regression — fail the build. + - name: Assert prerender output is only /hilfe/transkription + run: | + cd frontend + set -e + extra=$(find build/prerendered -type f \ + -not -path 'build/prerendered/hilfe/*' \ + -not -name '*.br' -not -name '*.gz' \ + || true) + if [ -n "$extra" ]; then + echo "FAIL: unexpected prerendered files (would shadow runtime hooks):" + echo "$extra" + exit 1 + fi + # And the help page must still be there. + test -f build/prerendered/hilfe/transkription.html \ + || { echo "FAIL: /hilfe/transkription.html missing from prerender output"; exit 1; } + echo "PASS: only /hilfe/transkription.html prerendered." + - name: Upload screenshots if: always() uses: actions/upload-artifact@v4