Skip to content

test(e2e): the English journey, and the end of the docs directory - #27

Merged
viclafouch merged 2 commits into
mainfrom
test/english-journey
Aug 22, 2026
Merged

viclafouch merged 2 commits into
mainfrom
test/english-journey

Conversation

@viclafouch

Copy link
Copy Markdown
Owner

Two commits, two concerns.

The English journey

Fifteen scenarios under /en/, the last level 3 surface that had none. The browser stays fr-FR throughout, which is the point: the URL is what decides the language, and a French speaking runner must not be able to make an English page answer in French.

  • /en/ renders in English and the prefix survives a click, since links are localized by the router on their way out.
  • The English library fills its thirty Memes, shows the Universal Meme under its English title and never under the French one, and its second page holds the four the first left out.
  • Eight scenarios take the metadata, one per kind of head the site builds: title, canonical, the three hreflang, the two og:locale.
  • The language switcher moves the page, and the choice then outranks the URL.
  • An annual checkout paid in English, asserting the localized amount and the return trip.

Expected strings and URLs come from the app, not from a copy: buildPageTitle, buildUrl and OG_LOCALE_MAP are exported from src/lib/seo.ts for that, and SITE_NAME and MONTHS_IN_YEAR stop being duplicated literals.

One thing worth knowing came out of this. PARAGLIDE_LOCALE is read before the URL, and paraglide writes it on the first client render, not only when the switcher is used. Walking once to /en/ pins that browser to English, and that cookie is the only thing that brings a paying Visitor home in English: successUrl is a bare /checkout/success handed to Stripe, which the router never sees. Reordering the strategy to put url first would read as a simplification and would drop them back into French. It is now a constraint in CONTEXT.md.

The end of docs/

Prose about the code goes stale the day the code moves, and this repository has one developer who moves code without moving prose. The e2e plan had become an inventory of a suite that already describes itself.

Nothing load bearing was lost. The two decisions the code cannot justify by itself, the daily VisitorKey fingerprint and the frozen attribution of an Event, are now constraints in CONTEXT.md, carrying the reasons that would otherwise be undone in good faith. Everything still to do became an issue: #20, #21, #22, #23, #24, #25, #26.

CLAUDE.md now says where knowledge goes instead: CONTEXT.md, .claude/rules/, or an issue.

Verification

The full suite is green locally, 122 tests, no retries. pnpm run lint:fix and pnpm run test pass.

🤖 Generated with Claude Code

viclafouch and others added 2 commits August 22, 2026 16:37
Fifteen scenarios under `/en/`: routing, the English library and its second
page, a localized Meme page, the metadata of every kind of head the site
builds, the language switcher, the locale banner, and an annual checkout paid
in English.

The browser stays `fr-FR` on purpose, so the URL is what decides the language.

Exports `buildPageTitle`, `OG_LOCALE_MAP` and `SITE_NAME` so the tests read the
app rather than a copy, and moves `MONTHS_IN_YEAR` next to the other durations.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Prose about the code goes stale the day the code moves, and this repository has
one developer who moves code without moving prose. The e2e plan had become an
inventory of a suite that already describes itself.

What was still load bearing moved rather than died. The two decisions the code
cannot justify, the daily VisitorKey fingerprint and the frozen attribution of
an Event, are now constraints in CONTEXT.md, with the reasons that would
otherwise be undone in good faith. Everything left to do became an issue.

CLAUDE.md now says where knowledge goes instead: CONTEXT.md, .claude/rules/, or
an issue.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 22, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
petit-meme Ready Ready Preview Aug 22, 2026 2:39pm

Request Review

@viclafouch
viclafouch merged commit 9ccd57c into main Aug 22, 2026
5 checks passed

This branch was successfully deployed

1 active deployment
Preview — 08c564c1 Deployed Aug 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant