@luanpdd/kit-mcp 1.33.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +168 -168
- package/gates/agent-no-recursive-dispatch.md +84 -84
- package/kit/COMANDOS.md +138 -138
- package/kit/COMPATIBILITY.md +70 -70
- package/kit/README.md +76 -76
- package/kit/agents/advisor-researcher.md +109 -109
- package/kit/agents/ai-mutation-tester.md +289 -289
- package/kit/agents/assumptions-analyzer.md +110 -110
- package/kit/agents/audit-log-implementer.md +314 -314
- package/kit/agents/auditor-consistencia-isolamento.md +414 -414
- package/kit/agents/b2b-saas-architect.md +157 -157
- package/kit/agents/burn-rate-forecaster.md +153 -153
- package/kit/agents/cascading-failures-auditor.md +299 -299
- package/kit/agents/codebase-mapper.md +769 -769
- package/kit/agents/crm-pipeline-implementer.md +257 -257
- package/kit/agents/debugger.md +814 -814
- package/kit/agents/designer-ui.md +216 -216
- package/kit/agents/detector-tenant-quente.md +338 -338
- package/kit/agents/evolution-go-integrator.md +201 -201
- package/kit/agents/example-reviewer.md +22 -22
- package/kit/agents/executor.md +565 -565
- package/kit/agents/golden-signals-instrumenter.md +232 -232
- package/kit/agents/incident-investigator.md +238 -238
- package/kit/agents/integration-checker.md +203 -203
- package/kit/agents/invite-flow-implementer.md +190 -190
- package/kit/agents/legacy-characterizer.md +369 -369
- package/kit/agents/lgpd-compliance-auditor.md +296 -296
- package/kit/agents/load-shedding-instrumenter.md +290 -290
- package/kit/agents/multi-tenant-isolation-auditor.md +254 -254
- package/kit/agents/multi-tenant-rls-writer.md +341 -341
- package/kit/agents/nyquist-auditor.md +181 -181
- package/kit/agents/observability-coverage-auditor.md +316 -316
- package/kit/agents/observability-instrumenter.md +191 -191
- package/kit/agents/omm-auditor.md +291 -291
- package/kit/agents/org-onboarding-implementer.md +224 -224
- package/kit/agents/payload-capture-instrumenter.md +274 -274
- package/kit/agents/phase-researcher.md +697 -697
- package/kit/agents/plan-checker.md +275 -275
- package/kit/agents/planner.md +923 -923
- package/kit/agents/postmortem-writer.md +273 -273
- package/kit/agents/project-researcher.md +653 -653
- package/kit/agents/prr-conductor.md +287 -287
- package/kit/agents/refactor-safety-auditor.md +405 -405
- package/kit/agents/release-pipeline-auditor.md +364 -364
- package/kit/agents/research-synthesizer.md +246 -246
- package/kit/agents/roadmapper.md +678 -678
- package/kit/agents/schema-checker.md +160 -160
- package/kit/agents/seam-finder.md +360 -360
- package/kit/agents/shotgun-surgery-detector.md +350 -350
- package/kit/agents/slo-engineer.md +217 -217
- package/kit/agents/storytelling-analyst.md +300 -300
- package/kit/agents/supabase-architect.md +249 -249
- package/kit/agents/supabase-auth-bootstrapper.md +400 -400
- package/kit/agents/supabase-auth-hook-writer.md +418 -418
- package/kit/agents/supabase-branching-architect.md +563 -563
- package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -778
- package/kit/agents/supabase-column-privileges-writer.md +400 -400
- package/kit/agents/supabase-edge-fn-tester.md +288 -288
- package/kit/agents/supabase-edge-fn-writer.md +341 -341
- package/kit/agents/supabase-mfa-implementer.md +439 -439
- package/kit/agents/supabase-migration-writer.md +386 -386
- package/kit/agents/supabase-oauth-server-implementer.md +507 -507
- package/kit/agents/supabase-rbac-implementer.md +393 -393
- package/kit/agents/supabase-realtime-implementer.md +364 -364
- package/kit/agents/supabase-rls-hardener.md +522 -522
- package/kit/agents/supabase-rls-writer.md +324 -324
- package/kit/agents/supabase-roles-implementer.md +356 -356
- package/kit/agents/supabase-social-auth-implementer.md +451 -451
- package/kit/agents/supabase-sso-saml-architect.md +549 -549
- package/kit/agents/supabase-storage-implementer.md +407 -407
- package/kit/agents/super-admin-implementer.md +282 -282
- package/kit/agents/toil-auditor.md +268 -268
- package/kit/agents/ui-auditor.md +438 -438
- package/kit/agents/ui-checker.md +305 -305
- package/kit/agents/ui-researcher.md +356 -356
- package/kit/agents/user-profiler.md +176 -176
- package/kit/agents/validador-evolucao-schema.md +336 -336
- package/kit/agents/verifier.md +729 -729
- package/kit/agents/workflow-generator.md +167 -0
- package/kit/commands/adicionar-backlog.md +75 -75
- package/kit/commands/adicionar-fase.md +42 -42
- package/kit/commands/adicionar-tarefa.md +45 -45
- package/kit/commands/adicionar-testes.md +41 -41
- package/kit/commands/ajuda.md +21 -21
- package/kit/commands/atualizar.md +37 -37
- package/kit/commands/auditar-cascading.md +111 -111
- package/kit/commands/auditar-marco.md +179 -179
- package/kit/commands/auditar-observabilidade-cobertura-workflow.md +121 -0
- package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
- package/kit/commands/auditar-refactor.md +219 -219
- package/kit/commands/auditar-release.md +109 -109
- package/kit/commands/auditar-uat.md +23 -23
- package/kit/commands/autonomo.md +40 -40
- package/kit/commands/branch-pr.md +24 -24
- package/kit/commands/burn-rate-status.md +408 -408
- package/kit/commands/capturar-payloads.md +193 -193
- package/kit/commands/caracterizar.md +212 -212
- package/kit/commands/concluir-marco.md +247 -247
- package/kit/commands/configuracoes.md +36 -36
- package/kit/commands/criar-workflow.md +158 -0
- package/kit/commands/dados-distribuidos.md +188 -188
- package/kit/commands/definir-perfil.md +10 -10
- package/kit/commands/depurar.md +190 -190
- package/kit/commands/detectar-duplicacao.md +197 -197
- package/kit/commands/discutir-fase.md +131 -131
- package/kit/commands/encontrar-seams.md +136 -136
- package/kit/commands/entrar-discord.md +17 -17
- package/kit/commands/estatisticas.md +18 -18
- package/kit/commands/example-greeting.md +33 -33
- package/kit/commands/executar-fase.md +58 -58
- package/kit/commands/expresso.md +56 -56
- package/kit/commands/fase-ui.md +34 -34
- package/kit/commands/fazer.md +57 -57
- package/kit/commands/fio.md +125 -125
- package/kit/commands/fluxos-trabalho.md +64 -64
- package/kit/commands/forense.md +176 -176
- package/kit/commands/gerenciador.md +38 -38
- package/kit/commands/inserir-fase.md +31 -31
- package/kit/commands/legacy.md +263 -263
- package/kit/commands/limpeza.md +17 -17
- package/kit/commands/listar-hipoteses-fase.md +45 -45
- package/kit/commands/listar-workspaces.md +18 -18
- package/kit/commands/load-shedding.md +117 -117
- package/kit/commands/mapear-codebase.md +70 -70
- package/kit/commands/multi-tenant.md +163 -163
- package/kit/commands/nota.md +33 -33
- package/kit/commands/novo-marco.md +43 -43
- package/kit/commands/novo-projeto.md +41 -41
- package/kit/commands/novo-workspace.md +43 -43
- package/kit/commands/pausar-trabalho.md +37 -37
- package/kit/commands/perfil-usuario.md +45 -45
- package/kit/commands/pesquisar-fase.md +195 -195
- package/kit/commands/planejar-fase.md +67 -67
- package/kit/commands/planejar-lacunas.md +33 -33
- package/kit/commands/plantar-ideia.md +25 -25
- package/kit/commands/progresso.md +24 -24
- package/kit/commands/proximo.md +30 -30
- package/kit/commands/publicar.md +490 -490
- package/kit/commands/rapido.md +35 -35
- package/kit/commands/reaplicar-patches.md +124 -124
- package/kit/commands/refactor-seguro.md +321 -321
- package/kit/commands/relatorio-sessao.md +19 -19
- package/kit/commands/remover-fase.md +31 -31
- package/kit/commands/remover-workspace.md +26 -26
- package/kit/commands/resumo-marco.md +50 -50
- package/kit/commands/retomar-trabalho.md +40 -40
- package/kit/commands/revisar-backlog.md +60 -60
- package/kit/commands/revisar-ui.md +32 -32
- package/kit/commands/revisar.md +37 -37
- package/kit/commands/saude.md +21 -21
- package/kit/commands/setup-notion.md +93 -93
- package/kit/commands/storytelling.md +179 -179
- package/kit/commands/supabase.md +238 -238
- package/kit/commands/sync-main.md +68 -68
- package/kit/commands/validar-fase.md +35 -35
- package/kit/commands/verificar-tarefas.md +44 -44
- package/kit/commands/verificar-trabalho.md +64 -64
- package/kit/file-manifest.json +424 -419
- package/kit/framework/bin/lib/commands.cjs +959 -959
- package/kit/framework/bin/lib/config.cjs +442 -442
- package/kit/framework/bin/lib/core.cjs +1230 -1230
- package/kit/framework/bin/lib/frontmatter.cjs +336 -336
- package/kit/framework/bin/lib/init.cjs +1442 -1442
- package/kit/framework/bin/lib/milestone.cjs +252 -252
- package/kit/framework/bin/lib/model-profiles.cjs +68 -68
- package/kit/framework/bin/lib/phase.cjs +888 -888
- package/kit/framework/bin/lib/profile-output.cjs +952 -952
- package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
- package/kit/framework/bin/lib/roadmap.cjs +329 -329
- package/kit/framework/bin/lib/security.cjs +382 -382
- package/kit/framework/bin/lib/state.cjs +1031 -1031
- package/kit/framework/bin/lib/template.cjs +222 -222
- package/kit/framework/bin/lib/uat.cjs +282 -282
- package/kit/framework/bin/lib/verify.cjs +888 -888
- package/kit/framework/bin/lib/workstream.cjs +491 -491
- package/kit/framework/bin/tools.cjs +918 -918
- package/kit/framework/commands/workstreams.md +63 -63
- package/kit/framework/references/checkpoints.md +778 -778
- package/kit/framework/references/continuation-format.md +249 -249
- package/kit/framework/references/decimal-phase-calculation.md +64 -64
- package/kit/framework/references/git-integration.md +295 -295
- package/kit/framework/references/git-planning-commit.md +38 -38
- package/kit/framework/references/model-profile-resolution.md +36 -36
- package/kit/framework/references/model-profiles.md +139 -139
- package/kit/framework/references/phase-argument-parsing.md +61 -61
- package/kit/framework/references/planning-config.md +202 -202
- package/kit/framework/references/questioning.md +162 -162
- package/kit/framework/references/tdd.md +263 -263
- package/kit/framework/references/ui-brand.md +160 -160
- package/kit/framework/references/user-profiling.md +657 -657
- package/kit/framework/references/verification-patterns.md +612 -612
- package/kit/framework/references/workstream-flag.md +58 -58
- package/kit/framework/templates/DEBUG.md +164 -164
- package/kit/framework/templates/UAT.md +265 -265
- package/kit/framework/templates/UI-SPEC.md +100 -100
- package/kit/framework/templates/VALIDATION.md +76 -76
- package/kit/framework/templates/claude-md.md +122 -122
- package/kit/framework/templates/codebase/architecture.md +185 -185
- package/kit/framework/templates/codebase/concerns.md +205 -205
- package/kit/framework/templates/codebase/conventions.md +204 -204
- package/kit/framework/templates/codebase/integrations.md +192 -192
- package/kit/framework/templates/codebase/stack.md +158 -158
- package/kit/framework/templates/codebase/structure.md +199 -199
- package/kit/framework/templates/codebase/testing.md +301 -301
- package/kit/framework/templates/config.json +44 -44
- package/kit/framework/templates/context.md +352 -352
- package/kit/framework/templates/continue-here.md +78 -78
- package/kit/framework/templates/copilot-instructions.md +7 -7
- package/kit/framework/templates/debug-subagent-prompt.md +91 -91
- package/kit/framework/templates/dev-preferences.md +20 -20
- package/kit/framework/templates/discovery.md +146 -146
- package/kit/framework/templates/discussion-log.md +63 -63
- package/kit/framework/templates/milestone-archive.md +123 -123
- package/kit/framework/templates/milestone.md +115 -115
- package/kit/framework/templates/phase-prompt.md +610 -610
- package/kit/framework/templates/planner-subagent-prompt.md +117 -117
- package/kit/framework/templates/project.md +186 -186
- package/kit/framework/templates/requirements.md +231 -231
- package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
- package/kit/framework/templates/research-project/FEATURES.md +147 -147
- package/kit/framework/templates/research-project/PITFALLS.md +200 -200
- package/kit/framework/templates/research-project/STACK.md +120 -120
- package/kit/framework/templates/research-project/SUMMARY.md +170 -170
- package/kit/framework/templates/research.md +419 -419
- package/kit/framework/templates/retrospective.md +54 -54
- package/kit/framework/templates/roadmap.md +202 -202
- package/kit/framework/templates/state.md +176 -176
- package/kit/framework/templates/summary-complex.md +59 -59
- package/kit/framework/templates/summary-minimal.md +41 -41
- package/kit/framework/templates/summary-standard.md +48 -48
- package/kit/framework/templates/summary.md +209 -209
- package/kit/framework/templates/user-profile.md +146 -146
- package/kit/framework/templates/user-setup.md +256 -256
- package/kit/framework/templates/verification-report.md +258 -258
- package/kit/framework/workflows/add-phase.md +112 -112
- package/kit/framework/workflows/add-tests.md +351 -351
- package/kit/framework/workflows/add-todo.md +158 -158
- package/kit/framework/workflows/audit-milestone.md +340 -340
- package/kit/framework/workflows/audit-uat.md +109 -109
- package/kit/framework/workflows/autonomous.md +891 -891
- package/kit/framework/workflows/check-todos.md +177 -177
- package/kit/framework/workflows/cleanup.md +152 -152
- package/kit/framework/workflows/complete-milestone.md +696 -696
- package/kit/framework/workflows/diagnose-issues.md +231 -231
- package/kit/framework/workflows/discovery-phase.md +289 -289
- package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
- package/kit/framework/workflows/discuss-phase.md +784 -784
- package/kit/framework/workflows/do.md +104 -104
- package/kit/framework/workflows/execute-phase.md +838 -838
- package/kit/framework/workflows/execute-plan.md +510 -510
- package/kit/framework/workflows/fast.md +102 -102
- package/kit/framework/workflows/forensics.md +265 -265
- package/kit/framework/workflows/health.md +181 -181
- package/kit/framework/workflows/help.md +619 -619
- package/kit/framework/workflows/insert-phase.md +130 -130
- package/kit/framework/workflows/list-phase-assumptions.md +178 -178
- package/kit/framework/workflows/list-workspaces.md +56 -56
- package/kit/framework/workflows/manager.md +362 -362
- package/kit/framework/workflows/map-codebase.md +377 -377
- package/kit/framework/workflows/milestone-summary.md +223 -223
- package/kit/framework/workflows/new-milestone.md +486 -486
- package/kit/framework/workflows/new-project.md +1159 -1159
- package/kit/framework/workflows/new-workspace.md +237 -237
- package/kit/framework/workflows/next.md +97 -97
- package/kit/framework/workflows/node-repair.md +92 -92
- package/kit/framework/workflows/note.md +156 -156
- package/kit/framework/workflows/pause-work.md +176 -176
- package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
- package/kit/framework/workflows/plan-phase.md +765 -765
- package/kit/framework/workflows/plant-seed.md +169 -169
- package/kit/framework/workflows/pr-branch.md +129 -129
- package/kit/framework/workflows/profile-user.md +450 -450
- package/kit/framework/workflows/progress.md +507 -507
- package/kit/framework/workflows/quick.md +757 -757
- package/kit/framework/workflows/remove-phase.md +155 -155
- package/kit/framework/workflows/remove-workspace.md +90 -90
- package/kit/framework/workflows/research-phase.md +82 -82
- package/kit/framework/workflows/resume-project.md +326 -326
- package/kit/framework/workflows/review.md +228 -228
- package/kit/framework/workflows/session-report.md +146 -146
- package/kit/framework/workflows/settings.md +283 -283
- package/kit/framework/workflows/ship.md +228 -228
- package/kit/framework/workflows/stats.md +60 -60
- package/kit/framework/workflows/transition.md +671 -671
- package/kit/framework/workflows/ui-phase.md +302 -302
- package/kit/framework/workflows/ui-review.md +165 -165
- package/kit/framework/workflows/update.md +323 -323
- package/kit/framework/workflows/validate-phase.md +174 -174
- package/kit/framework/workflows/verify-phase.md +252 -252
- package/kit/framework/workflows/verify-work.md +637 -637
- package/kit/hooks/check-update.js +118 -118
- package/kit/hooks/context-monitor.js +163 -163
- package/kit/hooks/kit-attribution-reminder.cjs +92 -92
- package/kit/hooks/kit-router.cjs +137 -137
- package/kit/hooks/prompt-guard.js +103 -103
- package/kit/hooks/statusline.js +125 -125
- package/kit/hooks/workflow-guard.js +101 -101
- package/kit/settings.json +45 -45
- package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
- package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
- package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
- package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
- package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
- package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
- package/kit/skills/dynamic-workflow-authoring/SKILL.md +223 -0
- package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
- package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
- package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
- package/kit/skills/example-skill/SKILL.md +42 -42
- package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
- package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
- package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
- package/kit/skills/legacy-extract-class/SKILL.md +203 -203
- package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
- package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
- package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
- package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
- package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
- package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
- package/kit/skills/member-invite-flow/SKILL.md +305 -305
- package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
- package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
- package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
- package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
- package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
- package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
- package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
- package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
- package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
- package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
- package/kit/skills/supabase-auth-hardening/SKILL.md +674 -674
- package/kit/skills/supabase-auth-hooks/SKILL.md +875 -875
- package/kit/skills/supabase-auth-methods/SKILL.md +486 -486
- package/kit/skills/supabase-auth-sessions/SKILL.md +579 -579
- package/kit/skills/supabase-auth-ssr/SKILL.md +306 -306
- package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
- package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
- package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
- package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
- package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
- package/kit/skills/supabase-edge-functions/SKILL.md +330 -330
- package/kit/skills/supabase-edge-functions-auth/SKILL.md +309 -309
- package/kit/skills/supabase-edge-functions-limits/SKILL.md +302 -302
- package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +279 -279
- package/kit/skills/supabase-edge-functions-testing/SKILL.md +277 -277
- package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +357 -357
- package/kit/skills/supabase-enterprise-sso-saml/SKILL.md +545 -545
- package/kit/skills/supabase-jwt-signing-keys/SKILL.md +399 -399
- package/kit/skills/supabase-mfa/SKILL.md +488 -488
- package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
- package/kit/skills/supabase-migrations/SKILL.md +297 -297
- package/kit/skills/supabase-oauth-server/SKILL.md +537 -537
- package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
- package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
- package/kit/skills/supabase-realtime/SKILL.md +460 -460
- package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
- package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
- package/kit/skills/supabase-social-oauth/SKILL.md +480 -480
- package/kit/skills/supabase-third-party-auth/SKILL.md +450 -450
- package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
- package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
- package/kit/skills/ui-anti-padroes-ia/SKILL.md +261 -261
- package/kit/skills/ui-contexto-produto/SKILL.md +248 -248
- package/kit/skills/ui-cor-estrategia/SKILL.md +213 -213
- package/kit/skills/ui-critica-auditoria/SKILL.md +260 -260
- package/kit/skills/ui-motion-funcional/SKILL.md +264 -264
- package/kit/skills/ui-ritmo-espacial/SKILL.md +259 -259
- package/kit/skills/ui-tipografia/SKILL.md +211 -211
- package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
- package/kit/workflows/auditar-observabilidade-cobertura.workflow.js +250 -0
- package/package.json +65 -63
- package/src/core/kit.js +333 -216
- package/src/core/reflect.js +247 -247
- package/src/core/registry.js +123 -112
- package/src/core/reverse-sync.js +448 -372
- package/src/core/sync.js +477 -437
- package/src/core/watch.js +121 -121
- package/src/mcp-server/index.js +794 -794
|
@@ -1,301 +1,301 @@
|
|
|
1
|
-
# Template de Padrões de Teste
|
|
2
|
-
|
|
3
|
-
Template para `.planning/codebase/TESTING.md` - captura o framework e padrões de teste.
|
|
4
|
-
|
|
5
|
-
**Propósito:** Documentar como os testes são escritos e executados. Guia para adicionar testes que correspondam aos padrões existentes.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Template do Arquivo
|
|
10
|
-
|
|
11
|
-
```markdown
|
|
12
|
-
# Padrões de Teste
|
|
13
|
-
|
|
14
|
-
**Data da Análise:** [AAAA-MM-DD]
|
|
15
|
-
|
|
16
|
-
## Framework de Testes
|
|
17
|
-
|
|
18
|
-
**Runner:**
|
|
19
|
-
- [Framework: ex.: "Jest 29.x", "Vitest 1.x"]
|
|
20
|
-
- [Config: ex.: "jest.config.js na raiz do projeto"]
|
|
21
|
-
|
|
22
|
-
**Biblioteca de Asserções:**
|
|
23
|
-
- [Biblioteca: ex.: "expect built-in", "chai"]
|
|
24
|
-
- [Matchers: ex.: "toBe, toEqual, toThrow"]
|
|
25
|
-
|
|
26
|
-
**Comandos de Execução:**
|
|
27
|
-
```bash
|
|
28
|
-
[ex.: "npm test" ou "npm run test"] # Executar todos os testes
|
|
29
|
-
[ex.: "npm test -- --watch"] # Modo watch
|
|
30
|
-
[ex.: "npm test -- path/to/file.test.ts"] # Arquivo único
|
|
31
|
-
[ex.: "npm run test:coverage"] # Relatório de cobertura
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Organização dos Arquivos de Teste
|
|
35
|
-
|
|
36
|
-
**Localização:**
|
|
37
|
-
- [Padrão: ex.: "*.test.ts junto aos arquivos fonte"]
|
|
38
|
-
- [Alternativa: ex.: "diretório __tests__/" ou "árvore tests/ separada"]
|
|
39
|
-
|
|
40
|
-
**Nomenclatura:**
|
|
41
|
-
- [Testes unitários: ex.: "nome-do-modulo.test.ts"]
|
|
42
|
-
- [Integração: ex.: "nome-da-funcionalidade.integration.test.ts"]
|
|
43
|
-
- [E2E: ex.: "fluxo-do-usuario.e2e.test.ts"]
|
|
44
|
-
|
|
45
|
-
**Estrutura:**
|
|
46
|
-
```
|
|
47
|
-
[Mostrar padrão real de diretório, ex.:
|
|
48
|
-
src/
|
|
49
|
-
lib/
|
|
50
|
-
utils.ts
|
|
51
|
-
utils.test.ts
|
|
52
|
-
services/
|
|
53
|
-
user-service.ts
|
|
54
|
-
user-service.test.ts
|
|
55
|
-
]
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Estrutura dos Testes
|
|
59
|
-
|
|
60
|
-
**Organização de Suites:**
|
|
61
|
-
```typescript
|
|
62
|
-
[Mostrar padrão real usado, ex.:
|
|
63
|
-
|
|
64
|
-
describe('NomeDoModulo', () => {
|
|
65
|
-
describe('nomeDaFuncao', () => {
|
|
66
|
-
it('deve tratar caso de sucesso', () => {
|
|
67
|
-
// arrange
|
|
68
|
-
// act
|
|
69
|
-
// assert
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
it('deve tratar caso de erro', () => {
|
|
73
|
-
// código do teste
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
]
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Padrões:**
|
|
81
|
-
- [Setup: ex.: "beforeEach para setup compartilhado, evitar beforeAll"]
|
|
82
|
-
- [Teardown: ex.: "afterEach para limpar, restaurar mocks"]
|
|
83
|
-
- [Estrutura: ex.: "padrão arrange/act/assert obrigatório"]
|
|
84
|
-
|
|
85
|
-
## Mocking
|
|
86
|
-
|
|
87
|
-
**Framework:**
|
|
88
|
-
- [Ferramenta: ex.: "mocking built-in do Jest", "Vitest vi", "Sinon"]
|
|
89
|
-
- [Import mocking: ex.: "vi.mock() no topo do arquivo"]
|
|
90
|
-
|
|
91
|
-
**Padrões:**
|
|
92
|
-
```typescript
|
|
93
|
-
[Mostrar padrão real de mocking, ex.:
|
|
94
|
-
|
|
95
|
-
// Mock dependência externa
|
|
96
|
-
vi.mock('./external-service', () => ({
|
|
97
|
-
fetchData: vi.fn()
|
|
98
|
-
}));
|
|
99
|
-
|
|
100
|
-
// Mock no teste
|
|
101
|
-
const mockFetch = vi.mocked(fetchData);
|
|
102
|
-
mockFetch.mockResolvedValue({ data: 'test' });
|
|
103
|
-
]
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**O Que Mockar:**
|
|
107
|
-
- [ex.: "APIs externas, sistema de arquivos, banco de dados"]
|
|
108
|
-
- [ex.: "Tempo/datas (usar vi.useFakeTimers)"]
|
|
109
|
-
- [ex.: "Chamadas de rede (usar mock fetch)"]
|
|
110
|
-
|
|
111
|
-
**O Que NÃO Mockar:**
|
|
112
|
-
- [ex.: "Funções puras, utilitários"]
|
|
113
|
-
- [ex.: "Lógica de negócio interna"]
|
|
114
|
-
|
|
115
|
-
## Fixtures e Factories
|
|
116
|
-
|
|
117
|
-
**Dados de Teste:**
|
|
118
|
-
```typescript
|
|
119
|
-
[Mostrar padrão para criar dados de teste, ex.:
|
|
120
|
-
|
|
121
|
-
// Padrão factory
|
|
122
|
-
function createTestUser(overrides?: Partial<User>): User {
|
|
123
|
-
return {
|
|
124
|
-
id: 'test-id',
|
|
125
|
-
name: 'Test User',
|
|
126
|
-
email: 'test@example.com',
|
|
127
|
-
...overrides
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Arquivo de fixture
|
|
132
|
-
// tests/fixtures/users.ts
|
|
133
|
-
export const mockUsers = [/* ... */];
|
|
134
|
-
]
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
**Localização:**
|
|
138
|
-
- [ex.: "tests/fixtures/ para fixtures compartilhadas"]
|
|
139
|
-
- [ex.: "funções factory no arquivo de teste ou tests/factories/"]
|
|
140
|
-
|
|
141
|
-
## Cobertura
|
|
142
|
-
|
|
143
|
-
**Requisitos:**
|
|
144
|
-
- [Meta: ex.: "80% de cobertura de linhas", "sem meta específica"]
|
|
145
|
-
- [Aplicação: ex.: "CI bloqueia <80%", "cobertura apenas para conscientização"]
|
|
146
|
-
|
|
147
|
-
**Configuração:**
|
|
148
|
-
- [Ferramenta: ex.: "cobertura built-in via flag --coverage"]
|
|
149
|
-
- [Exclusões: ex.: "excluir *.test.ts, arquivos de config"]
|
|
150
|
-
|
|
151
|
-
**Ver Cobertura:**
|
|
152
|
-
```bash
|
|
153
|
-
[ex.: "npm run test:coverage"]
|
|
154
|
-
[ex.: "open coverage/index.html"]
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## Tipos de Testes
|
|
158
|
-
|
|
159
|
-
**Testes Unitários:**
|
|
160
|
-
- [Escopo: ex.: "testar função/classe única em isolamento"]
|
|
161
|
-
- [Mocking: ex.: "mockar todas as dependências externas"]
|
|
162
|
-
- [Velocidade: ex.: "deve executar em <1s por teste"]
|
|
163
|
-
|
|
164
|
-
**Testes de Integração:**
|
|
165
|
-
- [Escopo: ex.: "testar múltiplos módulos juntos"]
|
|
166
|
-
- [Mocking: ex.: "mockar serviços externos, usar módulos internos reais"]
|
|
167
|
-
- [Setup: ex.: "usar banco de dados de teste, seed de dados"]
|
|
168
|
-
|
|
169
|
-
**Testes E2E:**
|
|
170
|
-
- [Framework: ex.: "Playwright para E2E"]
|
|
171
|
-
- [Escopo: ex.: "testar fluxos completos do usuário"]
|
|
172
|
-
- [Localização: ex.: "diretório e2e/ separado dos testes unitários"]
|
|
173
|
-
|
|
174
|
-
## Padrões Comuns
|
|
175
|
-
|
|
176
|
-
**Teste Async:**
|
|
177
|
-
```typescript
|
|
178
|
-
[Mostrar padrão, ex.:
|
|
179
|
-
|
|
180
|
-
it('deve tratar operação async', async () => {
|
|
181
|
-
const result = await asyncFunction();
|
|
182
|
-
expect(result).toBe('expected');
|
|
183
|
-
});
|
|
184
|
-
]
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
**Teste de Erro:**
|
|
188
|
-
```typescript
|
|
189
|
-
[Mostrar padrão, ex.:
|
|
190
|
-
|
|
191
|
-
it('deve lançar com entrada inválida', () => {
|
|
192
|
-
expect(() => functionCall()).toThrow('mensagem de erro');
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
// Erro async
|
|
196
|
-
it('deve rejeitar na falha', async () => {
|
|
197
|
-
await expect(asyncCall()).rejects.toThrow('mensagem de erro');
|
|
198
|
-
});
|
|
199
|
-
]
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**Snapshot Testing:**
|
|
203
|
-
- [Uso: ex.: "apenas para componentes React" ou "não usado"]
|
|
204
|
-
- [Localização: ex.: "diretório __snapshots__/"]
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
*Análise de testes: [data]*
|
|
209
|
-
*Atualizar quando padrões de teste mudarem*
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
<good_examples>
|
|
213
|
-
```markdown
|
|
214
|
-
# Testing Patterns
|
|
215
|
-
|
|
216
|
-
**Analysis Date:** 2025-01-20
|
|
217
|
-
|
|
218
|
-
## Test Framework
|
|
219
|
-
|
|
220
|
-
**Runner:**
|
|
221
|
-
- Vitest 1.0.4
|
|
222
|
-
- Config: vitest.config.ts in project root
|
|
223
|
-
|
|
224
|
-
**Run Commands:**
|
|
225
|
-
```bash
|
|
226
|
-
npm test # Run all tests
|
|
227
|
-
npm test -- --watch # Watch mode
|
|
228
|
-
npm run test:coverage # Coverage report
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
## Test File Organization
|
|
232
|
-
|
|
233
|
-
**Location:**
|
|
234
|
-
- *.test.ts alongside source files
|
|
235
|
-
- No separate tests/ directory
|
|
236
|
-
|
|
237
|
-
## Test Structure
|
|
238
|
-
|
|
239
|
-
**Suite Organization:**
|
|
240
|
-
```typescript
|
|
241
|
-
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
242
|
-
|
|
243
|
-
describe('ModuleName', () => {
|
|
244
|
-
it('should handle valid input', () => {
|
|
245
|
-
// arrange
|
|
246
|
-
const input = createTestInput();
|
|
247
|
-
// act
|
|
248
|
-
const result = functionName(input);
|
|
249
|
-
// assert
|
|
250
|
-
expect(result).toEqual(expectedOutput);
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
---
|
|
256
|
-
|
|
257
|
-
*Testing analysis: 2025-01-20*
|
|
258
|
-
*Update when test patterns change*
|
|
259
|
-
```
|
|
260
|
-
</good_examples>
|
|
261
|
-
|
|
262
|
-
<guidelines>
|
|
263
|
-
**O que pertence ao TESTING.md:**
|
|
264
|
-
- Framework de teste e configuração do runner
|
|
265
|
-
- Padrões de localização e nomenclatura de arquivos de teste
|
|
266
|
-
- Estrutura de teste (describe/it, padrões beforeEach)
|
|
267
|
-
- Abordagem de mocking e exemplos
|
|
268
|
-
- Padrões de fixture/factory
|
|
269
|
-
- Requisitos de cobertura
|
|
270
|
-
- Como executar testes (comandos)
|
|
271
|
-
- Padrões comuns de teste no código real
|
|
272
|
-
|
|
273
|
-
**O que NÃO pertence aqui:**
|
|
274
|
-
- Casos de teste específicos (diferir para os arquivos de teste reais)
|
|
275
|
-
- Escolhas tecnológicas (isso é STACK.md)
|
|
276
|
-
- Setup de CI/CD (isso é docs de deployment)
|
|
277
|
-
|
|
278
|
-
**Ao preencher este template:**
|
|
279
|
-
- Verificar scripts do package.json para comandos de teste
|
|
280
|
-
- Encontrar arquivo de config de teste (jest.config.js, vitest.config.ts)
|
|
281
|
-
- Ler 3-5 arquivos de teste existentes para identificar padrões
|
|
282
|
-
- Procurar utilitários de teste em tests/ ou test-utils/
|
|
283
|
-
- Verificar configuração de cobertura
|
|
284
|
-
- Documentar padrões realmente usados, não padrões ideais
|
|
285
|
-
|
|
286
|
-
**Útil para planejamento de fases quando:**
|
|
287
|
-
- Adicionando novas funcionalidades (escrever testes correspondentes)
|
|
288
|
-
- Refatorando (manter padrões de teste)
|
|
289
|
-
- Corrigindo bugs (adicionar testes de regressão)
|
|
290
|
-
- Entendendo abordagem de verificação
|
|
291
|
-
- Configurando infraestrutura de teste
|
|
292
|
-
|
|
293
|
-
**Abordagem de análise:**
|
|
294
|
-
- Verificar package.json para framework de teste e scripts
|
|
295
|
-
- Ler arquivo de config de teste para cobertura, setup
|
|
296
|
-
- Examinar organização dos arquivos de teste (colocalizados vs. separados)
|
|
297
|
-
- Revisar 5 arquivos de teste para padrões (mocking, estrutura, asserções)
|
|
298
|
-
- Procurar utilitários de teste, fixtures, factories
|
|
299
|
-
- Notar quaisquer tipos de teste (unitário, integração, e2e)
|
|
300
|
-
- Documentar comandos para executar testes
|
|
301
|
-
</guidelines>
|
|
1
|
+
# Template de Padrões de Teste
|
|
2
|
+
|
|
3
|
+
Template para `.planning/codebase/TESTING.md` - captura o framework e padrões de teste.
|
|
4
|
+
|
|
5
|
+
**Propósito:** Documentar como os testes são escritos e executados. Guia para adicionar testes que correspondam aos padrões existentes.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Template do Arquivo
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# Padrões de Teste
|
|
13
|
+
|
|
14
|
+
**Data da Análise:** [AAAA-MM-DD]
|
|
15
|
+
|
|
16
|
+
## Framework de Testes
|
|
17
|
+
|
|
18
|
+
**Runner:**
|
|
19
|
+
- [Framework: ex.: "Jest 29.x", "Vitest 1.x"]
|
|
20
|
+
- [Config: ex.: "jest.config.js na raiz do projeto"]
|
|
21
|
+
|
|
22
|
+
**Biblioteca de Asserções:**
|
|
23
|
+
- [Biblioteca: ex.: "expect built-in", "chai"]
|
|
24
|
+
- [Matchers: ex.: "toBe, toEqual, toThrow"]
|
|
25
|
+
|
|
26
|
+
**Comandos de Execução:**
|
|
27
|
+
```bash
|
|
28
|
+
[ex.: "npm test" ou "npm run test"] # Executar todos os testes
|
|
29
|
+
[ex.: "npm test -- --watch"] # Modo watch
|
|
30
|
+
[ex.: "npm test -- path/to/file.test.ts"] # Arquivo único
|
|
31
|
+
[ex.: "npm run test:coverage"] # Relatório de cobertura
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Organização dos Arquivos de Teste
|
|
35
|
+
|
|
36
|
+
**Localização:**
|
|
37
|
+
- [Padrão: ex.: "*.test.ts junto aos arquivos fonte"]
|
|
38
|
+
- [Alternativa: ex.: "diretório __tests__/" ou "árvore tests/ separada"]
|
|
39
|
+
|
|
40
|
+
**Nomenclatura:**
|
|
41
|
+
- [Testes unitários: ex.: "nome-do-modulo.test.ts"]
|
|
42
|
+
- [Integração: ex.: "nome-da-funcionalidade.integration.test.ts"]
|
|
43
|
+
- [E2E: ex.: "fluxo-do-usuario.e2e.test.ts"]
|
|
44
|
+
|
|
45
|
+
**Estrutura:**
|
|
46
|
+
```
|
|
47
|
+
[Mostrar padrão real de diretório, ex.:
|
|
48
|
+
src/
|
|
49
|
+
lib/
|
|
50
|
+
utils.ts
|
|
51
|
+
utils.test.ts
|
|
52
|
+
services/
|
|
53
|
+
user-service.ts
|
|
54
|
+
user-service.test.ts
|
|
55
|
+
]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Estrutura dos Testes
|
|
59
|
+
|
|
60
|
+
**Organização de Suites:**
|
|
61
|
+
```typescript
|
|
62
|
+
[Mostrar padrão real usado, ex.:
|
|
63
|
+
|
|
64
|
+
describe('NomeDoModulo', () => {
|
|
65
|
+
describe('nomeDaFuncao', () => {
|
|
66
|
+
it('deve tratar caso de sucesso', () => {
|
|
67
|
+
// arrange
|
|
68
|
+
// act
|
|
69
|
+
// assert
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('deve tratar caso de erro', () => {
|
|
73
|
+
// código do teste
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Padrões:**
|
|
81
|
+
- [Setup: ex.: "beforeEach para setup compartilhado, evitar beforeAll"]
|
|
82
|
+
- [Teardown: ex.: "afterEach para limpar, restaurar mocks"]
|
|
83
|
+
- [Estrutura: ex.: "padrão arrange/act/assert obrigatório"]
|
|
84
|
+
|
|
85
|
+
## Mocking
|
|
86
|
+
|
|
87
|
+
**Framework:**
|
|
88
|
+
- [Ferramenta: ex.: "mocking built-in do Jest", "Vitest vi", "Sinon"]
|
|
89
|
+
- [Import mocking: ex.: "vi.mock() no topo do arquivo"]
|
|
90
|
+
|
|
91
|
+
**Padrões:**
|
|
92
|
+
```typescript
|
|
93
|
+
[Mostrar padrão real de mocking, ex.:
|
|
94
|
+
|
|
95
|
+
// Mock dependência externa
|
|
96
|
+
vi.mock('./external-service', () => ({
|
|
97
|
+
fetchData: vi.fn()
|
|
98
|
+
}));
|
|
99
|
+
|
|
100
|
+
// Mock no teste
|
|
101
|
+
const mockFetch = vi.mocked(fetchData);
|
|
102
|
+
mockFetch.mockResolvedValue({ data: 'test' });
|
|
103
|
+
]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**O Que Mockar:**
|
|
107
|
+
- [ex.: "APIs externas, sistema de arquivos, banco de dados"]
|
|
108
|
+
- [ex.: "Tempo/datas (usar vi.useFakeTimers)"]
|
|
109
|
+
- [ex.: "Chamadas de rede (usar mock fetch)"]
|
|
110
|
+
|
|
111
|
+
**O Que NÃO Mockar:**
|
|
112
|
+
- [ex.: "Funções puras, utilitários"]
|
|
113
|
+
- [ex.: "Lógica de negócio interna"]
|
|
114
|
+
|
|
115
|
+
## Fixtures e Factories
|
|
116
|
+
|
|
117
|
+
**Dados de Teste:**
|
|
118
|
+
```typescript
|
|
119
|
+
[Mostrar padrão para criar dados de teste, ex.:
|
|
120
|
+
|
|
121
|
+
// Padrão factory
|
|
122
|
+
function createTestUser(overrides?: Partial<User>): User {
|
|
123
|
+
return {
|
|
124
|
+
id: 'test-id',
|
|
125
|
+
name: 'Test User',
|
|
126
|
+
email: 'test@example.com',
|
|
127
|
+
...overrides
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Arquivo de fixture
|
|
132
|
+
// tests/fixtures/users.ts
|
|
133
|
+
export const mockUsers = [/* ... */];
|
|
134
|
+
]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Localização:**
|
|
138
|
+
- [ex.: "tests/fixtures/ para fixtures compartilhadas"]
|
|
139
|
+
- [ex.: "funções factory no arquivo de teste ou tests/factories/"]
|
|
140
|
+
|
|
141
|
+
## Cobertura
|
|
142
|
+
|
|
143
|
+
**Requisitos:**
|
|
144
|
+
- [Meta: ex.: "80% de cobertura de linhas", "sem meta específica"]
|
|
145
|
+
- [Aplicação: ex.: "CI bloqueia <80%", "cobertura apenas para conscientização"]
|
|
146
|
+
|
|
147
|
+
**Configuração:**
|
|
148
|
+
- [Ferramenta: ex.: "cobertura built-in via flag --coverage"]
|
|
149
|
+
- [Exclusões: ex.: "excluir *.test.ts, arquivos de config"]
|
|
150
|
+
|
|
151
|
+
**Ver Cobertura:**
|
|
152
|
+
```bash
|
|
153
|
+
[ex.: "npm run test:coverage"]
|
|
154
|
+
[ex.: "open coverage/index.html"]
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Tipos de Testes
|
|
158
|
+
|
|
159
|
+
**Testes Unitários:**
|
|
160
|
+
- [Escopo: ex.: "testar função/classe única em isolamento"]
|
|
161
|
+
- [Mocking: ex.: "mockar todas as dependências externas"]
|
|
162
|
+
- [Velocidade: ex.: "deve executar em <1s por teste"]
|
|
163
|
+
|
|
164
|
+
**Testes de Integração:**
|
|
165
|
+
- [Escopo: ex.: "testar múltiplos módulos juntos"]
|
|
166
|
+
- [Mocking: ex.: "mockar serviços externos, usar módulos internos reais"]
|
|
167
|
+
- [Setup: ex.: "usar banco de dados de teste, seed de dados"]
|
|
168
|
+
|
|
169
|
+
**Testes E2E:**
|
|
170
|
+
- [Framework: ex.: "Playwright para E2E"]
|
|
171
|
+
- [Escopo: ex.: "testar fluxos completos do usuário"]
|
|
172
|
+
- [Localização: ex.: "diretório e2e/ separado dos testes unitários"]
|
|
173
|
+
|
|
174
|
+
## Padrões Comuns
|
|
175
|
+
|
|
176
|
+
**Teste Async:**
|
|
177
|
+
```typescript
|
|
178
|
+
[Mostrar padrão, ex.:
|
|
179
|
+
|
|
180
|
+
it('deve tratar operação async', async () => {
|
|
181
|
+
const result = await asyncFunction();
|
|
182
|
+
expect(result).toBe('expected');
|
|
183
|
+
});
|
|
184
|
+
]
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Teste de Erro:**
|
|
188
|
+
```typescript
|
|
189
|
+
[Mostrar padrão, ex.:
|
|
190
|
+
|
|
191
|
+
it('deve lançar com entrada inválida', () => {
|
|
192
|
+
expect(() => functionCall()).toThrow('mensagem de erro');
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
// Erro async
|
|
196
|
+
it('deve rejeitar na falha', async () => {
|
|
197
|
+
await expect(asyncCall()).rejects.toThrow('mensagem de erro');
|
|
198
|
+
});
|
|
199
|
+
]
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Snapshot Testing:**
|
|
203
|
+
- [Uso: ex.: "apenas para componentes React" ou "não usado"]
|
|
204
|
+
- [Localização: ex.: "diretório __snapshots__/"]
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
*Análise de testes: [data]*
|
|
209
|
+
*Atualizar quando padrões de teste mudarem*
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
<good_examples>
|
|
213
|
+
```markdown
|
|
214
|
+
# Testing Patterns
|
|
215
|
+
|
|
216
|
+
**Analysis Date:** 2025-01-20
|
|
217
|
+
|
|
218
|
+
## Test Framework
|
|
219
|
+
|
|
220
|
+
**Runner:**
|
|
221
|
+
- Vitest 1.0.4
|
|
222
|
+
- Config: vitest.config.ts in project root
|
|
223
|
+
|
|
224
|
+
**Run Commands:**
|
|
225
|
+
```bash
|
|
226
|
+
npm test # Run all tests
|
|
227
|
+
npm test -- --watch # Watch mode
|
|
228
|
+
npm run test:coverage # Coverage report
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Test File Organization
|
|
232
|
+
|
|
233
|
+
**Location:**
|
|
234
|
+
- *.test.ts alongside source files
|
|
235
|
+
- No separate tests/ directory
|
|
236
|
+
|
|
237
|
+
## Test Structure
|
|
238
|
+
|
|
239
|
+
**Suite Organization:**
|
|
240
|
+
```typescript
|
|
241
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
242
|
+
|
|
243
|
+
describe('ModuleName', () => {
|
|
244
|
+
it('should handle valid input', () => {
|
|
245
|
+
// arrange
|
|
246
|
+
const input = createTestInput();
|
|
247
|
+
// act
|
|
248
|
+
const result = functionName(input);
|
|
249
|
+
// assert
|
|
250
|
+
expect(result).toEqual(expectedOutput);
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
*Testing analysis: 2025-01-20*
|
|
258
|
+
*Update when test patterns change*
|
|
259
|
+
```
|
|
260
|
+
</good_examples>
|
|
261
|
+
|
|
262
|
+
<guidelines>
|
|
263
|
+
**O que pertence ao TESTING.md:**
|
|
264
|
+
- Framework de teste e configuração do runner
|
|
265
|
+
- Padrões de localização e nomenclatura de arquivos de teste
|
|
266
|
+
- Estrutura de teste (describe/it, padrões beforeEach)
|
|
267
|
+
- Abordagem de mocking e exemplos
|
|
268
|
+
- Padrões de fixture/factory
|
|
269
|
+
- Requisitos de cobertura
|
|
270
|
+
- Como executar testes (comandos)
|
|
271
|
+
- Padrões comuns de teste no código real
|
|
272
|
+
|
|
273
|
+
**O que NÃO pertence aqui:**
|
|
274
|
+
- Casos de teste específicos (diferir para os arquivos de teste reais)
|
|
275
|
+
- Escolhas tecnológicas (isso é STACK.md)
|
|
276
|
+
- Setup de CI/CD (isso é docs de deployment)
|
|
277
|
+
|
|
278
|
+
**Ao preencher este template:**
|
|
279
|
+
- Verificar scripts do package.json para comandos de teste
|
|
280
|
+
- Encontrar arquivo de config de teste (jest.config.js, vitest.config.ts)
|
|
281
|
+
- Ler 3-5 arquivos de teste existentes para identificar padrões
|
|
282
|
+
- Procurar utilitários de teste em tests/ ou test-utils/
|
|
283
|
+
- Verificar configuração de cobertura
|
|
284
|
+
- Documentar padrões realmente usados, não padrões ideais
|
|
285
|
+
|
|
286
|
+
**Útil para planejamento de fases quando:**
|
|
287
|
+
- Adicionando novas funcionalidades (escrever testes correspondentes)
|
|
288
|
+
- Refatorando (manter padrões de teste)
|
|
289
|
+
- Corrigindo bugs (adicionar testes de regressão)
|
|
290
|
+
- Entendendo abordagem de verificação
|
|
291
|
+
- Configurando infraestrutura de teste
|
|
292
|
+
|
|
293
|
+
**Abordagem de análise:**
|
|
294
|
+
- Verificar package.json para framework de teste e scripts
|
|
295
|
+
- Ler arquivo de config de teste para cobertura, setup
|
|
296
|
+
- Examinar organização dos arquivos de teste (colocalizados vs. separados)
|
|
297
|
+
- Revisar 5 arquivos de teste para padrões (mocking, estrutura, asserções)
|
|
298
|
+
- Procurar utilitários de teste, fixtures, factories
|
|
299
|
+
- Notar quaisquer tipos de teste (unitário, integração, e2e)
|
|
300
|
+
- Documentar comandos para executar testes
|
|
301
|
+
</guidelines>
|