test: add a black-box architecture violation and repair proof
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 49/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, node.js, playwright, react, typescript, vite
- Área
- build-system, testing, tooling
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- JavaScript
- Estrellas
- 1
- Forks
- 0
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 11
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de jst-stack/jst
-
enhancement help wanted javascript
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
Los mantenedores suelen responder en 1 día
Todos los issues de jst-stack/jst
Issues similares
-
Notifications pagination accepts NaN and negative LIMIT/OFFSETPosiblemente ocupada @Senthil455 la tomó hoy. AbiertoBUGS MEDIUM
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
elixpo/blogs.elixpo#419 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
immich-app/immich#32426 ·
Los mantenedores suelen responder en 1 día
-
automated issue report
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
lirantal/discoprint#45 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
scanaislop/aislop#482 ·
Los mantenedores suelen responder en 1 día