Cloud: E2E coverage and documentation
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- firebase, lua, typescript
- Ambito
- authentication, cloud, databases, documentation, testing
Direzione di ricerca
Start with lua-learning-website/e2e/fixtures.ts and the existing fixture pattern, then review dependencies #795 and #796 before adding the signed-in and admin coverage. Read the requested cloud documentation files and record the 500-file scale results and preview-channel checks. Done means all listed emulator specs, documentation updates, build, duplicates, lint, and typecheck pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
End-to-end coverage of the full cloud accounts flow against the Firebase emulators, plus user and
developer documentation. Closes out the Cloud Accounts & Storage milestone.
E2E
lua-learning-website/e2e/fixtures.ts currently provides editorPage, cleanEditorPage,
explorerPage, and shellPage, each hardcoding page.goto('/editor'). Add a signed-in
fixture backed by the Auth emulator, plus an admin fixture, as siblings.
Specs to add:
- Sign in with an allowlisted account ->
/cloudmounts and appears in the explorer - Create, edit, and delete a file in
/cloud; reload -> content persists - Run a Lua script from
/cloudin the shell;requireandio.openboth resolve - Upload a binary asset -> stored in Cloud Storage, not Firestore
- Sign in with a non-allowlisted email -> exactly
"{EMAIL} is not authorized.", user signed out - Exceed quota -> clear error, existing files untouched, editor content not lost
- Admin panel: add/remove an allowlist email, add/remove a domain, change
quotaBytesandmaxFiles - Admin panel is unreachable for a non-admin
- Sign out ->
/cloudunmounts; virtual and local workspaces still work - Guest (never signed in) experience is unchanged
Scale check
Create a workspace of ~500 small files and confirm hydration streams with visible progress and an
acceptable cold-start time. This is the assumption in the whole design most likely to be
wrong — if manifest-first + paged streaming is not fast enough, the mount strategy in
#792 needs revisiting before rollout.
Documentation
-
docs/cloud-storage.md: architecture, the Firestore/Storage split and the 256 KB spill
threshold, quota model, admin runbook (add a user, add a domain, change a quota, bootstrap
the first admin), emulator workflow, and the stated residual gap around client-reported
usage prior to #797 -
docs/architecture.mdupdated to describe thecloudworkspace type -
CLAUDE.mdupdated if the emulator step becomes part of the standard test command
Acceptance criteria
- All specs above pass against the emulators
- Signed-in and admin fixtures added to
e2e/fixtures.tsfollowing the existing pattern - 500-file scale check performed and results recorded in this issue
-
docs/cloud-storage.mdanddocs/architecture.mdupdated - Full manual pass on a Firebase Hosting preview channel (see below)
-
npm run build,npm run duplicates, lint, and typecheck all pass
Manual verification on a preview channel
The COOP/COEP headers and the signInWithRedirect flow cannot be reproduced under
vite dev — they only exist on Firebase Hosting. In particular:
- Assert
window.crossOriginIsolated === trueafter completing sign-in, proving the auth
flow did not cost us SharedArrayBuffer - Run a canvas/WASM demo post-sign-in to confirm the runtime still works
- Confirm the Google account chooser appears even when already signed into Google
- Sign in on a second device and confirm live sync
Depends on
- #795
- #796
Branching
This issue is part of the Cloud Accounts & Storage
milestone, which uses feat/cloud as its integration branch.
Branch from feat/cloud, and open the PR against feat/cloud. Never against main.
Create the branch (the --base flag also sets the default PR target for this branch):
gh issue develop <number> --base feat/cloud --checkout
Open the PR:
python3 scripts/issue-review.py <number> --base feat/cloud \
--summary "<summary>" --test-plan "<test-plan>"
feat/cloud merges to main in a single PR once the milestone is complete.
Why both flags are required: gh issue develop without --base branches from the repository
default branch (main), and scripts/issue-review.py falls back to main when --base is
omitted — both for the gh pr create target and for the changed-file list in the PR body.
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di jcollard/LuaInTheWeb
-
tech-debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
jcollard/LuaInTheWeb#752 ·
-
tech-debt
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
jcollard/LuaInTheWeb#690 ·
-
tech-debt
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
jcollard/LuaInTheWeb#590 ·
-
tech-debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
jcollard/LuaInTheWeb#518 ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
jcollard/LuaInTheWeb#235 ·
Tutte le issue di jcollard/LuaInTheWeb
Issue simili
-
useFragment does not require `variables` when the fragment's variables type has required fieldsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
apollographql/apollo-client#13493 ·
I maintainer di solito rispondono entro 1 giorno
-
Custom hosts written as trailing-dot FQDNs (`host.local.`) aren't detected as local backendsForse già presa @roboomp l’ha presa oggi. Apertabug prio:p2 providers triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
can1357/oh-my-pi#15798 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
code-yeongyu/oh-my-openagent#10172 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
PDFCraftTool/pdfcraft#189 ·
-
Add the Yahoo chart API duplicate last-day row (yfinance#573) to incidents.md (about 1 hour)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Apertadata docs good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
pacocartones/market-data-sanity-checker#160 ·
I maintainer di solito rispondono entro 1 giorno