test(e2e): the English journey, and the end of the docs directory - #27
Merged
Merged
Conversation
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>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two commits, two concerns.
The English journey
Fifteen scenarios under
/en/, the last level 3 surface that had none. The browser staysfr-FRthroughout, 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.headthe site builds: title, canonical, the threehreflang, the twoog:locale.Expected strings and URLs come from the app, not from a copy:
buildPageTitle,buildUrlandOG_LOCALE_MAPare exported fromsrc/lib/seo.tsfor that, andSITE_NAMEandMONTHS_IN_YEARstop being duplicated literals.One thing worth knowing came out of this.
PARAGLIDE_LOCALEis 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:successUrlis a bare/checkout/successhanded to Stripe, which the router never sees. Reordering the strategy to puturlfirst would read as a simplification and would drop them back into French. It is now a constraint inCONTEXT.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
VisitorKeyfingerprint and the frozen attribution of anEvent, are now constraints inCONTEXT.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.mdnow 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:fixandpnpm run testpass.🤖 Generated with Claude Code