E2E Flows
🤖 This is a generated document — do not edit. Built by
tools/wiki/generate-e2e-page.tsfrom the*.e2e.tssources underapps/playwright-e2e/src(test.describe/testtitles). Refresh withbun run wiki:buildand commit; staleness fails the wiki gates in CI and pre-push. About this section: Generated Docs.
See also: Testing, Storybook, Test Coverage
The user flows with Playwright end-to-end coverage — 17 suites,
53 flows across extension / mobile / web. Run them with
bun run e2e:playwright (fresh seeded emulator; flags all-on, admin
account). The Cypress suites are frozen — every NEW flow lands here, so this
page is the coverage map to check before shipping one.
extension (3 suites · 4 flows)​
- annotates fixture-shop prices and shows the hover tooltip
- detects multi-currency prices in the fixture article
- signed-out alt-click on a price shows the sign-in prompt toast
- saving an hourly rate persists to storage
mobile (2 suites · 3 flows)​
- guest walks onboarding into the translator home
- redirects every entry point to /login
- shows the reused login organism including the Google button
web (12 suites · 46 flows)​
- right to erasure: deleting the account removes the Auth user AND every Firestore doc
- right to know/portability: the export is complete, self-describing JSON
- reset all stories wipes the answers but keeps the account
- a plain member sees the ordinary funnel — no switcher anywhere
- an admin switches plan from a tier card and the account moves to it
- a signed-out visitor is bounced away from /admin/story-builder
- an ordinary signed-in user is bounced away from /admin/partners
- an admin-claim user reaches the story builder
- creates a new account through the sign-in modal
- signs in an existing user
- shows an error for a wrong password and stays logged out
- enabling encryption persists — still enabled (and locked) after a reload
- a Days member is stopped on the dashboard until they choose a system
- /expenses: bank connect is the only (coming-soon) door; one tap files a merchant everywhere
- below Days: no gate, no switch, and /expenses shows the unlock note
- landing renders with the signed-out header
- the header wordmark routes back home from any page
- stories page renders the map with nodes
- flag-gated /partners renders because flags are seeded ON
- clicking a link lands the destination at the top of the page
- unknown URLs render the custom 404 without redirecting
- headlines and prices render for a signed-out visitor
- the analysis is redacted signed out — bars carry no text
- the sign-up CTA opens the login dialog in place
- a fresh account is told exactly which foundation stories to finish
- cards run on story-derived rates; Unallocated is locked IN PLACE for a free member
- selecting Spendable while locked turns the card region into the pitch
- an Hours member sees no locks — Unallocated waits on the expenses story
- signed out: foundations playable, deep stories redacted — no titles in the DOM
- a free story plays without an account
- the paid overlay CTA opens the sign-in dialog in place
- deep-linking a blocked story redirects to the map with the paid banner open
- signed out on /compare, the Days-plan upsell banner leads above the teaser hero
- /compare carries the clearly-fake sample-data Compare preview
- signed out on /projections, the banner names the Months plan and shows no preview
- signed out on /voting, the Hours-plan banner leads and the sample board shows
- the sidebar nav lists every public tier-feature entry
- the sidebar never names the secret tier features when signed out
- an ADMIN with no tier is bounced off the secret rungs, like any free member
- a member on the generations tier reaches every secret rung
- a DECADES member reaches /adviser but is still bounced off the generations rungs
- /worth-it lands on the travel teaser
- a teaser shows its section structure with redacted answers
- signed out, the CTA opens the sign-in dialog in place
- the locked upsell banner leads the page, above the teaser hero
- an unknown slug falls back to the travel teaser