test: add a black-box architecture violation and repair proof
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 49/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, node.js, playwright, react, typescript, vite
- Ambito
- build-system, testing, tooling
Direzione di ricerca
Read the existing unit and integration tests, generator entry point, public CLI commands, and CI workflows to see how the project creates and validates a clean JST project. Build the proof in a temporary project, covering the two named violation families and asserting their stable diagnostic codes, reasons, repairs, and documentation links. Run npm run check and npm run test:e2e; done means the repaired project passes npm run validate and the proof cleans up temporary output on both success and failure.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
JST has unit and integration coverage for individual rules, generators, SSR, and browser behavior, but it lacks one black-box proof of the complete user loop:
clean project
→ canonical generated slice
→ real architecture violation
→ actionable failure
→ repair
→ green project
Without this contract, a rule, generator, documentation example, or normal validation command can remain green independently while the promised end-to-end repair path is broken.
Scope
Add an executable proof that works against a temporary clean project and uses the same public commands documented for users.
The proof must:
- create a temporary clean JST project;
- run the real slice generator;
- verify the generated project is initially green;
- introduce a private cross-slice import violation;
- introduce an external-effect-in-view violation;
- run the normal validation command and assert actionable diagnostics;
- apply the documented repairs;
- verify the project returns to green.
Acceptance criteria
- The proof invokes public CLI/generator entry points rather than imported test-only internals.
- It verifies at least two independent violation families.
- The negative phase exits non-zero for the expected stable diagnostic codes.
- Diagnostics include a reason, repair, and stable documentation link.
- The repaired project passes
npm run validate. - Temporary output is removed after both success and failure.
- The proof performs no network access after dependencies are installed.
- It runs on Linux, macOS, and Windows in CI.
- Failure artifacts contain the command log and final diff, but not
node_modules. - The user-facing proof command completes within five minutes on the supported CI runners.
-
npm run checkandnpm run test:e2eremain green.
Dependency
Blocked by jst-stack/eslint-plugin#8. Do not bind this proof to complete human-readable error strings.
Design constraints
- Keep the harness outside application layers.
- Do not add production exports for the test.
- Keep fixtures minimal: they exist to prove the repair loop, not to become another showcase.
Out of scope
- Marketing copy, video, or GIF production.
- Artificially weakening the policy to simplify the demonstration.
- Testing every JST diagnostic; the conformance corpus owns exhaustive coverage.
Validation
npm ci
npm run check
npx playwright install chromium
npm run test:e2e
- Lingua principale
- JavaScript
- Stelle
- 1
- Fork
- 0
- Merge medio
- 15h 8m
- PR unite (30g)
- 18
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un 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.
Issue simili
-
Place search spins forever when nominatim failsForse già presa @jgt87 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
anvaka/city-roads#213 ·
-
mobile UX
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
jellyfin/jellyfin-web#8685 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
SchemaStore/schemastore#6535 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue helia storage tier-1
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
QMeshPy/distributed-quantum#53 ·
I maintainer di solito rispondono entro 1 giorno