jarvis-ai-framework 1.0.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/AGENTS.md +416 -0
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/agents/AGENTS.md +234 -0
- package/agents/README.md +309 -0
- package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
- package/agents/engineering/eng.agent.md +303 -0
- package/agents/engineering/eng.bug-hunter.md +386 -0
- package/agents/engineering/eng.cybersecurity.agent.md +503 -0
- package/agents/engineering/eng.dev-code-reviewer.md +148 -0
- package/agents/engineering/eng.docs-writer.md +152 -0
- package/agents/engineering/eng.frontend.agent.md +117 -0
- package/agents/engineering/eng.rpa.agent.md +215 -0
- package/agents/engineering/eng.tech-analyst.agent.md +102 -0
- package/agents/engineering/eng.ux-designer.agent.md +193 -0
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
- package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
- package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
- package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
- package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
- package/agents/product/prod.pm-checker.md +52 -0
- package/bin/commands/docs-publish.js +184 -0
- package/bin/commands/docs-sync.js +139 -0
- package/bin/commands/info.js +87 -0
- package/bin/commands/init.js +237 -0
- package/bin/commands/install-rtk.js +90 -0
- package/bin/commands/list.js +48 -0
- package/bin/commands/qa-signoff.js +112 -0
- package/bin/commands/whoami.js +43 -0
- package/bin/jarvis.js +159 -0
- package/bin/lib/auth/session.js +56 -0
- package/bin/lib/config/constants.js +123 -0
- package/bin/lib/config/ide-config.js +233 -0
- package/bin/lib/core/scanner.js +124 -0
- package/bin/lib/core/sync-engine.js +551 -0
- package/bin/lib/docs/fetch-file.sh +41 -0
- package/bin/lib/docs/publish-file.sh +284 -0
- package/bin/lib/docs/validate-frontmatter.js +157 -0
- package/bin/lib/env-loader.js +198 -0
- package/bin/lib/tasks/comment.js +131 -0
- package/bin/lib/utils/git-parser.js +145 -0
- package/bin/lib/utils/logger.js +104 -0
- package/bin/lib/utils/npmrc-parser.js +106 -0
- package/bin/lib/utils/paths.js +55 -0
- package/bin/lib/utils/ui.js +59 -0
- package/bin/lib/vcs/api.js +312 -0
- package/bin/lib/vcs/create-issue.js +43 -0
- package/bin/lib/vcs/create-merge.js +43 -0
- package/bin/lib/vcs/fetch-raw.js +30 -0
- package/bin/postinstall.js +41 -0
- package/members.md +25 -0
- package/package.json +55 -0
- package/rules/AGENTS.md +205 -0
- package/rules/engineering/data/data-rules.md +200 -0
- package/rules/engineering/eng-rules.md +243 -0
- package/rules/engineering/eng-security-rules.md +186 -0
- package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
- package/rules/engineering/eng.bump-rules.md +27 -0
- package/rules/engineering/eng.docs-scraping-rules.md +64 -0
- package/rules/engineering/eng.downstream-flow-rules.md +297 -0
- package/rules/engineering/eng.integrations-rules.md +73 -0
- package/rules/engineering/eng.plan-rules.md +333 -0
- package/rules/engineering/eng.pr-rules.md +359 -0
- package/rules/engineering/eng.pre-pr-rules.md +103 -0
- package/rules/engineering/eng.start-rules.md +246 -0
- package/rules/engineering/eng.tech-spec-rules.md +968 -0
- package/rules/engineering/eng.work-rules.md +312 -0
- package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
- package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
- package/rules/product/README.md +24 -0
- package/rules/product/prod-rules.md +151 -0
- package/rules/rtk-rules.md +68 -0
- package/skills/AGENTS.md +290 -0
- package/skills/SKILLS-ROADMAP.md +333 -0
- package/skills/churn-audit/SKILL.md +385 -0
- package/skills/context-detect/SKILL.md +399 -0
- package/skills/context-detect/assets/context-profile-template.md +127 -0
- package/skills/docs-central/README.md +310 -0
- package/skills/docs-central/SKILL.md +423 -0
- package/skills/docs-index/SKILL.md +377 -0
- package/skills/eng-ai-engineer/SKILL.md +296 -0
- package/skills/eng-arch-c4/SKILL.md +358 -0
- package/skills/eng-arch-c4/assets/example-code.md +189 -0
- package/skills/eng-arch-c4/assets/example-component.md +105 -0
- package/skills/eng-arch-c4/assets/example-container.md +104 -0
- package/skills/eng-arch-c4/assets/example-context.md +81 -0
- package/skills/eng-backend/SKILL.md +776 -0
- package/skills/eng-browser-extension-builder/SKILL.md +385 -0
- package/skills/eng-cybersecurity/SKILL.md +645 -0
- package/skills/eng-data-bi/SKILL.md +199 -0
- package/skills/eng-data-debug/SKILL.md +307 -0
- package/skills/eng-data-engineer/SKILL.md +256 -0
- package/skills/eng-data-onboard/SKILL.md +310 -0
- package/skills/eng-data-orchestrator/SKILL.md +426 -0
- package/skills/eng-design-system/SKILL.md +619 -0
- package/skills/eng-docs-write/SKILL.md +312 -0
- package/skills/eng-frontend/SKILL.md +913 -0
- package/skills/eng-jira-comment/SKILL.md +17 -0
- package/skills/eng-microfrontend/SKILL.md +602 -0
- package/skills/eng-ms-trace/SKILL.md +469 -0
- package/skills/eng-nestjs/SKILL.md +791 -0
- package/skills/eng-performance-engineer/SKILL.md +312 -0
- package/skills/eng-pr/SKILL.md +339 -0
- package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
- package/skills/eng-qa-bug-report/SKILL.md +1088 -0
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
- package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
- package/skills/eng-qa-dev-guide/SKILL.md +164 -0
- package/skills/eng-qa-e2e/SKILL.md +400 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
- package/skills/eng-qa-exploratory/SKILL.md +188 -0
- package/skills/eng-qa-gate/SKILL.md +370 -0
- package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
- package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
- package/skills/eng-qa-quality-report/SKILL.md +412 -0
- package/skills/eng-qa-test-plan/SKILL.md +466 -0
- package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
- package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
- package/skills/eng-qa-testsprite/SKILL.md +325 -0
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
- package/skills/eng-qa-unit-test/SKILL.md +471 -0
- package/skills/eng-rabbitmq/SKILL.md +661 -0
- package/skills/eng-scraper/SKILL.md +683 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
- package/skills/eng-security-patch/SKILL.md +378 -0
- package/skills/eng-security-triage/SKILL.md +266 -0
- package/skills/eng-task-comment/SKILL.md +60 -0
- package/skills/eng-tech-analyst/SKILL.md +529 -0
- package/skills/eng-threat-model/SKILL.md +161 -0
- package/skills/init-jarvis/SKILL.md +1304 -0
- package/skills/init-jarvis/assets/mcp-configs.md +389 -0
- package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
- package/skills/init-jarvis/assets/setup-guide.md +360 -0
- package/skills/lovable-prompt-generator/SKILL.md +304 -0
- package/skills/prod-roadmap-report/README.md +303 -0
- package/skills/prod-roadmap-report/SKILL.md +198 -0
- package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
- package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
- package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
- package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
- package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
- package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
- package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
- package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
- package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
- package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
- package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
- package/skills/prod-specs/SKILL.md +108 -0
- package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
- package/skills/prod-specs/references/prod.spec.epic.md +107 -0
- package/skills/prod-specs/references/prod.spec.frd.md +135 -0
- package/skills/prod-specs/references/prod.spec.issue.md +145 -0
- package/skills/prod-specs/references/prod.spec.prd.md +118 -0
- package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
- package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
- package/skills/prod-specs/templates/prod-epic-template.md +76 -0
- package/skills/prod-specs/templates/prod-frd-template.md +172 -0
- package/skills/prod-specs/templates/prod-issue-template.md +68 -0
- package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
- package/skills/prod-specs/templates/prod-prd-template.md +173 -0
- package/skills/prod-specs-update/SKILL.md +272 -0
- package/skills/report-issue/SKILL.md +156 -0
- package/taxonomy.md +270 -0
- package/templates/AGENTS.md +189 -0
- package/templates/CDD aplicado a Prompts.md +182 -0
- package/templates/ENV-template.md +187 -0
- package/templates/engineering/AGENTS-template.md +71 -0
- package/templates/engineering/ARD-template.md +193 -0
- package/templates/engineering/CONTACTS-template.md +135 -0
- package/templates/engineering/PR-template.md +40 -0
- package/templates/engineering/RFC-Playbook.md +325 -0
- package/templates/engineering/RFC-template.md +199 -0
- package/templates/engineering/architecture-template.md +277 -0
- package/templates/engineering/breakdown-subtasks-template.md +582 -0
- package/templates/engineering/c4-model-template.md +516 -0
- package/templates/engineering/data-contract-template.md +135 -0
- package/templates/engineering/data-pipeline-template.md +163 -0
- package/templates/engineering/plan-template.md +255 -0
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
- package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
- package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
- package/templates/engineering/qa/qa.quality-report-template.md +130 -0
- package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
- package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
- package/templates/engineering/swagger-template.md +145 -0
- package/templates/engineering/tech-spec-template.md +497 -0
- package/templates/engineering/work-progress-template.md +155 -0
- package/workflows/AGENTS.md +240 -0
- package/workflows/README.md +160 -0
- package/workflows/all-tools.md +11 -0
- package/workflows/engineering/data/data.contract.md +202 -0
- package/workflows/engineering/data/data.new-pipeline.md +234 -0
- package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
- package/workflows/engineering/eng.bug-audit.md +591 -0
- package/workflows/engineering/eng.build-tech-spec.md +1116 -0
- package/workflows/engineering/eng.create-ard-from-code.md +259 -0
- package/workflows/engineering/eng.create-ard.md +382 -0
- package/workflows/engineering/eng.create-rfc.md +245 -0
- package/workflows/engineering/eng.debug.md +479 -0
- package/workflows/engineering/eng.docs.md +40 -0
- package/workflows/engineering/eng.light-arch.md +84 -0
- package/workflows/engineering/eng.plan.md +213 -0
- package/workflows/engineering/eng.pr.md +466 -0
- package/workflows/engineering/eng.pre-pr.md +167 -0
- package/workflows/engineering/eng.review.md +185 -0
- package/workflows/engineering/eng.rpa.robot.md +342 -0
- package/workflows/engineering/eng.security-audit.md +312 -0
- package/workflows/engineering/eng.security-incident.md +275 -0
- package/workflows/engineering/eng.security-pipeline.md +210 -0
- package/workflows/engineering/eng.security-review.md +235 -0
- package/workflows/engineering/eng.start.md +494 -0
- package/workflows/engineering/eng.work.md +558 -0
- package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
- package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
- package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
- package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
- package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
- package/workflows/product/prod.roadmap.preview.md +110 -0
- package/workflows/product/prod.spec.breakdown.md +163 -0
- package/workflows/product/prod.spec.clarify.md +178 -0
- package/workflows/product/prod.spec.epic.md +154 -0
- package/workflows/product/prod.spec.frd.md +96 -0
- package/workflows/product/prod.spec.issue.md +145 -0
- package/workflows/product/prod.spec.md +60 -0
- package/workflows/product/prod.spec.prd.md +100 -0
- package/workflows/taxonomy.md +92 -0
- package/workflows/warm-up.md +574 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# TestSprite MCP — Referência (Resumo Operacional)
|
|
2
|
+
|
|
3
|
+
> Esta referência consolida, em formato local, as capacidades e o fluxo do **TestSprite MCP Server**.
|
|
4
|
+
>
|
|
5
|
+
> Fonte original: https://docs.testsprite.com/mcp/getting-started/introduction
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## O que é
|
|
10
|
+
|
|
11
|
+
O **TestSprite MCP Server** é um MCP para IDE que funciona como um agente de testes automatizados. Ele:
|
|
12
|
+
|
|
13
|
+
- Lê PRD (quando fornecido)
|
|
14
|
+
- Analisa o codebase
|
|
15
|
+
- Gera um PRD normalizado (TestSprite PRD)
|
|
16
|
+
- Cria planos de teste
|
|
17
|
+
- Gera código de teste
|
|
18
|
+
- Executa testes
|
|
19
|
+
- Produz relatórios
|
|
20
|
+
- Suporta fluxo de correção com base nos resultados
|
|
21
|
+
|
|
22
|
+
A documentação descreve esse funcionamento como um fluxo em múltiplas etapas ("reads PRD" → "analyzes code" → "generates test PRD" → "creates test plans" → "generates test code" → "executes tests" → "provides results" → "enables fixes").
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Tipos de teste suportados
|
|
27
|
+
|
|
28
|
+
- **Frontend**: UI & Business-Flow (E2E / integração de fluxos)
|
|
29
|
+
- **Backend**: API & Integration
|
|
30
|
+
|
|
31
|
+
## Quando usar cada tipo
|
|
32
|
+
|
|
33
|
+
### Frontend (UI & Business-Flow)
|
|
34
|
+
|
|
35
|
+
Use quando o risco/valor está no comportamento percebido pelo usuário:
|
|
36
|
+
|
|
37
|
+
- Fluxos de navegação (multi-step), páginas e rotas
|
|
38
|
+
- Formulários, validações e mensagens de erro
|
|
39
|
+
- Componentes interativos e estados (loading/empty)
|
|
40
|
+
- Fluxos de autenticação/autorizações na UI (login/logout/rotas protegidas)
|
|
41
|
+
|
|
42
|
+
Evite escolher Frontend como única camada quando o objetivo é validar contrato/semântica de API (nesse caso, inclua Backend).
|
|
43
|
+
|
|
44
|
+
### Backend (API & Integration)
|
|
45
|
+
|
|
46
|
+
Use quando o risco/valor está na API/serviço e suas integrações:
|
|
47
|
+
|
|
48
|
+
- Contratos de request/response, schemas e versionamento
|
|
49
|
+
- Regras de autorização/autenticação (RBAC/scopes, token validation)
|
|
50
|
+
- Resiliência e tratamento de erro (status codes, timeouts, retries/backoff)
|
|
51
|
+
- Edge cases e validações de payload/paginação
|
|
52
|
+
- Integridade/persistência de dados (idempotência/constraints)
|
|
53
|
+
|
|
54
|
+
### Quando rodar os dois
|
|
55
|
+
|
|
56
|
+
Rode **Frontend + Backend** quando:
|
|
57
|
+
|
|
58
|
+
- O fluxo é ponta-a-ponta (UI chama API) e você quer diagnóstico mais rápido
|
|
59
|
+
- Existem regras de auth e modelos de dados compartilhados entre UI e API
|
|
60
|
+
- O problema pode estar em contrato, payloads ou status codes (camada API), mas se manifesta na UI
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Escopo de execução (Codebase vs Code Diff)
|
|
65
|
+
|
|
66
|
+
A documentação menciona dois modos de escopo:
|
|
67
|
+
|
|
68
|
+
- **Codebase**: varredura completa do projeto.
|
|
69
|
+
- Use quando:
|
|
70
|
+
- é a primeira execução do TestSprite no repo
|
|
71
|
+
- você quer um baseline amplo de qualidade
|
|
72
|
+
- houve mudanças grandes/estruturais e o risco é sistêmico
|
|
73
|
+
|
|
74
|
+
- **Code Diff**: executar focado nas mudanças recentes (a doc cita mudanças não commitadas/uncommitted).
|
|
75
|
+
- Use quando:
|
|
76
|
+
- você quer feedback rápido antes de abrir PR
|
|
77
|
+
- quer validar apenas o impacto do que acabou de alterar
|
|
78
|
+
- está iterando rapidamente e o full sweep seria caro/lento
|
|
79
|
+
|
|
80
|
+
Observação: se você precisar focar especificamente em staged vs uncommitted, valide com o usuário qual estado do Git deve ser considerado antes de executar.
|
|
81
|
+
|
|
82
|
+
## Tipos de testes (detalhamento)
|
|
83
|
+
|
|
84
|
+
Esta lista é uma transcrição/normalização do que a documentação descreve como capacidades suportadas.
|
|
85
|
+
|
|
86
|
+
### Frontend (UI & Business-Flow Integration)
|
|
87
|
+
|
|
88
|
+
- **User Journey Navigation**: fluxos multi-etapa, transições de página, deep linking, histórico do navegador e route guards.
|
|
89
|
+
- Exemplos de quando usar:
|
|
90
|
+
- Quando você alterou navegação/roteamento (ex.: novas rotas, guards, redirects pós-login).
|
|
91
|
+
- Quando implementou um fluxo multi-página (ex.: onboarding, checkout, wizard).
|
|
92
|
+
- Quando mudou deep links (ex.: abrir detalhes via URL) ou comportamento do back/forward.
|
|
93
|
+
- **Form Flows & Validation**: validação de input, mensagens de erro, dependências entre campos, submissão e persistência.
|
|
94
|
+
- Exemplos de quando usar:
|
|
95
|
+
- Quando criou/alterou regras de validação (ex.: email, senha, máscara, required).
|
|
96
|
+
- Quando mudou mensagens de erro, estados inválidos e validação em tempo real.
|
|
97
|
+
- Quando o submit depende de múltiplos campos/etapas (ex.: endereço + pagamento).
|
|
98
|
+
- **Visual States & Layouts**: renderização, responsividade, loading/empty states e compliance de acessibilidade.
|
|
99
|
+
- Exemplos de quando usar:
|
|
100
|
+
- Quando adicionou estados de carregamento/placeholder/skeleton.
|
|
101
|
+
- Quando alterou layout responsivo (breakpoints) ou grid.
|
|
102
|
+
- Quando implementou empty states (lista vazia, zero-state) e quer validar acessibilidade.
|
|
103
|
+
- **Interactive Components & Stateful UI**: dropdowns, modals, tabs, accordions, drag-and-drop, persistência de estado e updates em tempo real.
|
|
104
|
+
- Exemplos de quando usar:
|
|
105
|
+
- Quando adicionou/alterou modal, dropdown, tab ou accordion que controla estado.
|
|
106
|
+
- Quando implementou drag-and-drop (ordenar itens, kanban).
|
|
107
|
+
- Quando tem UI com updates em tempo real (polling/websocket) e precisa validar consistência visual.
|
|
108
|
+
- **Authorization & Auth Flows (UI)**: login/logout, rotas protegidas, visibilidade por papel, session management e token refresh.
|
|
109
|
+
- Exemplos de quando usar:
|
|
110
|
+
- Quando alterou fluxo de login/logout (ex.: SSO, MFA, step extra).
|
|
111
|
+
- Quando introduziu nova rota protegida ou mudança de RBAC na UI.
|
|
112
|
+
- Quando houve mudança em refresh/expiração de token (ex.: reauth silencioso).
|
|
113
|
+
- **Error Handling (UI)**: toasts, modals, inline errors, feedback de validação e graceful degradation.
|
|
114
|
+
- Exemplos de quando usar:
|
|
115
|
+
- Quando mudou o padrão de exibição de erros (toast vs inline vs modal).
|
|
116
|
+
- Quando adicionou tratamento para falhas de rede/timeout.
|
|
117
|
+
- Quando precisa validar que o usuário recebe feedback correto em cenários de erro.
|
|
118
|
+
|
|
119
|
+
### Backend (API & Integration)
|
|
120
|
+
|
|
121
|
+
- **Functional API Workflows**: comportamento de endpoints, workflows multi-step, orquestração de serviços e padrões de integração.
|
|
122
|
+
- Exemplos de quando usar:
|
|
123
|
+
- Quando introduziu um fluxo que chama múltiplos endpoints (ex.: criar pedido → pagar → confirmar).
|
|
124
|
+
- Quando mudou orquestração/integração entre serviços (ex.: webhook + job async).
|
|
125
|
+
- Quando há dependência de estados/transições (ex.: status de pedido).
|
|
126
|
+
- **Contract & Schema Validation**: schemas request/response, data types, required fields, formatos de serialização e versionamento.
|
|
127
|
+
- Exemplos de quando usar:
|
|
128
|
+
- Quando adicionou/removeu campos no payload (request/response).
|
|
129
|
+
- Quando alterou tipos/formatos (ex.: date string → epoch) ou regras de required/optional.
|
|
130
|
+
- Quando mudou versionamento de API ou contratos entre serviços.
|
|
131
|
+
- **Error Handling & Resilience**: status codes, error bodies, retry/backoff, timeouts e graceful degradation.
|
|
132
|
+
- Exemplos de quando usar:
|
|
133
|
+
- Quando ajustou códigos de status (ex.: 400/404/409/422) e mensagens de erro.
|
|
134
|
+
- Quando adicionou timeouts, retries/backoff ou circuit breaker.
|
|
135
|
+
- Quando precisa validar comportamento em dependência instável (ex.: serviço terceiro).
|
|
136
|
+
- **Authorization & Authentication**: token validation, RBAC, permission scopes, session management e credential handling.
|
|
137
|
+
- Exemplos de quando usar:
|
|
138
|
+
- Quando alterou regras de permissão (RBAC/scopes) por endpoint.
|
|
139
|
+
- Quando mudou validação de token (claims, expiração, audience/issuer).
|
|
140
|
+
- Quando introduziu novo mecanismo de autenticação (ex.: API key, OAuth).
|
|
141
|
+
- **Boundary & Edge Cases**: limites de payload, paginação, valores null/empty, inputs malformados e constraint validation.
|
|
142
|
+
- Exemplos de quando usar:
|
|
143
|
+
- Quando adicionou paginação/filters/sorting e precisa validar limites.
|
|
144
|
+
- Quando o endpoint aceita payload grande ou novos formatos.
|
|
145
|
+
- Quando adicionou validações de input e quer cobrir casos inválidos.
|
|
146
|
+
- **Data Integrity & Persistence**: consistência de dados, transações, idempotência, state management e database constraints.
|
|
147
|
+
- Exemplos de quando usar:
|
|
148
|
+
- Quando introduziu escrita em banco (insert/update) com constraints novas.
|
|
149
|
+
- Quando implementou idempotência (ex.: POST com idempotency-key).
|
|
150
|
+
- Quando adicionou transações/sagas e quer validar consistência sob falha.
|
|
151
|
+
- **Security Testing**: vulnerabilidades comuns (injection, XSS, CSRF), auth bypass, authorization flaws, data exposure e security misconfigurations.
|
|
152
|
+
- Exemplos de quando usar:
|
|
153
|
+
- Quando expôs endpoint novo e quer validar que não há bypass de auth.
|
|
154
|
+
- Quando mexeu em sanitização/validação e quer detectar injection.
|
|
155
|
+
- Quando lida com dados sensíveis e quer checar exposição indevida.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Lifecycle (modelo mental)
|
|
160
|
+
|
|
161
|
+
A documentação descreve um lifecycle conceitual:
|
|
162
|
+
|
|
163
|
+
- Discover & Understand
|
|
164
|
+
- Plan
|
|
165
|
+
- Generate
|
|
166
|
+
- Execute
|
|
167
|
+
- Analyze
|
|
168
|
+
- Heal & Maintain
|
|
169
|
+
- Report & Integrate
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Fluxo de "primeiro teste" (Getting Started)
|
|
174
|
+
|
|
175
|
+
A documentação sugere:
|
|
176
|
+
|
|
177
|
+
1. Subir o projeto localmente (ex.: `npm run dev`, `node index.js`, etc.)
|
|
178
|
+
2. Abrir um chat no IDE e pedir:
|
|
179
|
+
|
|
180
|
+
```text
|
|
181
|
+
Can you test this project with TestSprite?
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
3. Fornecer configuração obrigatória (conforme solicitado pelo fluxo do MCP), incluindo:
|
|
185
|
+
- Tipo: Frontend ou Backend
|
|
186
|
+
- Scope: Codebase (varredura completa) ou Code Diff (mudanças recentes / uncommitted)
|
|
187
|
+
- Credenciais de conta de teste (se houver login)
|
|
188
|
+
- URLs locais (ex.: frontend `http://localhost:5173`, backend `http://localhost:4000`)
|
|
189
|
+
- PRD (quando aplicável)
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Artefatos gerados
|
|
194
|
+
|
|
195
|
+
A documentação mostra um output típico em `testsprite_tests/`, incluindo:
|
|
196
|
+
|
|
197
|
+
- `standard_prd.json` (PRD normalizado)
|
|
198
|
+
- `TestSprite_MCP_Test_Report.md` e `TestSprite_MCP_Test_Report.html`
|
|
199
|
+
- `tmp/` com dados auxiliares (ex.: `config.json`, `code_summary.json`, `test_results.json`)
|
|
200
|
+
- Arquivos de casos de teste (ex.: `TC001_...py`, `TC002_...py`, etc.)
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Pré-requisitos / instalação (pontos essenciais)
|
|
205
|
+
|
|
206
|
+
- Conta TestSprite e **API key**
|
|
207
|
+
- **Node.js >= 22** (para rodar o MCP via `npx`)
|
|
208
|
+
- Instalação do MCP depende do IDE, mas o comando base é:
|
|
209
|
+
|
|
210
|
+
```text
|
|
211
|
+
npx @testsprite/testsprite-mcp@latest
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Em configurações de MCP, é comum usar `API_KEY` via variável de ambiente.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Referências
|
|
219
|
+
|
|
220
|
+
- Introduction: https://docs.testsprite.com/mcp/getting-started/introduction
|
|
221
|
+
- Overview: https://docs.testsprite.com/mcp/getting-started/overview
|
|
222
|
+
- Installation: https://docs.testsprite.com/mcp/getting-started/installation
|
|
223
|
+
- First MCP Test: https://docs.testsprite.com/mcp/getting-started/first-test
|
|
224
|
+
- Test Types & Lifecycle: https://docs.testsprite.com/mcp/concepts/test-type-lifecycle
|
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng-qa-unit-test
|
|
3
|
+
description: >
|
|
4
|
+
Gera testes unitários para código novo ou modificado seguindo as convenções do projeto.
|
|
5
|
+
Trigger: Use quando precisar criar testes unitários para funções, classes ou módulos.
|
|
6
|
+
argument-hint: "[caminho-do-arquivo]"
|
|
7
|
+
disable-model-invocation: false
|
|
8
|
+
allowed-tools: Read Write Edit Grep Glob Bash mcp__TestSprite__testsprite_bootstrap mcp__TestSprite__testsprite_generate_code_summary mcp__TestSprite__testsprite_generate_frontend_test_plan mcp__TestSprite__testsprite_generate_backend_test_plan mcp__TestSprite__testsprite_generate_code_and_execute mcp__TestSprite__testsprite_rerun_tests
|
|
9
|
+
license: AGPL-3.0
|
|
10
|
+
metadata:
|
|
11
|
+
author: jarvis-team
|
|
12
|
+
version: "1.0"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# QA Unit Test - Gerador de Testes Unitários
|
|
16
|
+
|
|
17
|
+
Você é um **especialista em testes unitários** focado em criar testes de alta qualidade seguindo as convenções do projeto.
|
|
18
|
+
|
|
19
|
+
## Objetivo
|
|
20
|
+
|
|
21
|
+
Gerar testes unitários completos para código novo ou modificado, garantindo cobertura adequada e seguindo padrões de teste do projeto.
|
|
22
|
+
|
|
23
|
+
## Entrada
|
|
24
|
+
|
|
25
|
+
- `$ARGUMENTS` - Caminho do arquivo ou função para criar testes
|
|
26
|
+
|
|
27
|
+
## Recursos
|
|
28
|
+
|
|
29
|
+
- **Saída**: Arquivo de teste no padrão do projeto (`.test.ts`, `.spec.ts`, `_test.py`, etc.)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Pré-requisito
|
|
34
|
+
|
|
35
|
+
Verificar se o `ENV.md` existe e está completo antes de executar.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Quando Usar
|
|
40
|
+
|
|
41
|
+
Use esta skill quando:
|
|
42
|
+
- Precisar criar testes unitários para novo código
|
|
43
|
+
- Quiser aumentar a cobertura de testes de código existente
|
|
44
|
+
- Necessitar de testes para funções ou classes específicas
|
|
45
|
+
- Estiver fazendo TDD e precisar de testes antes da implementação
|
|
46
|
+
|
|
47
|
+
**NÃO usar quando:**
|
|
48
|
+
- Precisar de testes de integração (use qa-integration-test)
|
|
49
|
+
- Precisar de testes e2e (use qa-e2e-test)
|
|
50
|
+
- O código já tiver cobertura adequada
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Validação de Entrada
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Se $ARGUMENTS está vazio:
|
|
58
|
+
→ Exibir: "⚠️ Argumento obrigatório. Informe o caminho do arquivo."
|
|
59
|
+
→ Exibir: "Uso: /qa-unit-test [caminho-do-arquivo]"
|
|
60
|
+
→ Encerrar execução
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Integração com TestSprite MCP
|
|
66
|
+
|
|
67
|
+
Esta skill prioriza o uso do TestSprite MCP para geração automática de testes quando disponível.
|
|
68
|
+
|
|
69
|
+
### Verificação de Disponibilidade
|
|
70
|
+
|
|
71
|
+
Para verificar se o TestSprite está disponível:
|
|
72
|
+
|
|
73
|
+
1. **Tente chamar** `testsprite_bootstrap` com parâmetros mínimos
|
|
74
|
+
2. **Se a tool existir e responder**: Prossiga com o Fluxo A (MCP)
|
|
75
|
+
3. **Se a tool não existir ou retornar erro**: Prossiga com o Fluxo B (Manual)
|
|
76
|
+
|
|
77
|
+
**Erros que indicam indisponibilidade:**
|
|
78
|
+
- `Tool not found`
|
|
79
|
+
- `MCP server not connected`
|
|
80
|
+
- `Connection refused`
|
|
81
|
+
- Timeout sem resposta
|
|
82
|
+
|
|
83
|
+
> **Importante**: Não tente reconectar ou instalar o MCP automaticamente. Se indisponível, siga direto para o Fluxo B.
|
|
84
|
+
|
|
85
|
+
### Decisão de Fluxo
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
89
|
+
│ │
|
|
90
|
+
│ VERIFICAR TESTSPRITE MCP │
|
|
91
|
+
│ │
|
|
92
|
+
│ ┌─────────────────────────┐ │
|
|
93
|
+
│ │ Tool testsprite_bootstrap│ │
|
|
94
|
+
│ │ disponível? │ │
|
|
95
|
+
│ └───────────┬─────────────┘ │
|
|
96
|
+
│ │ │
|
|
97
|
+
│ SIM │ NÃO │
|
|
98
|
+
│ ↓ │ ↓ │
|
|
99
|
+
│ FLUXO │ FLUXO │
|
|
100
|
+
│ MCP │ MANUAL │
|
|
101
|
+
│ (A) │ (B) │
|
|
102
|
+
│ │
|
|
103
|
+
└─────────────────────────────────────────────────────────────┘
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## FLUXO A: TestSprite MCP (Preferencial)
|
|
109
|
+
|
|
110
|
+
Se o TestSprite MCP estiver disponível, use as seguintes ferramentas para gerar testes automaticamente.
|
|
111
|
+
|
|
112
|
+
### A.1. Detectar Tipo de Projeto
|
|
113
|
+
|
|
114
|
+
Identifique se o projeto é frontend ou backend:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Verificar indicadores de Frontend
|
|
118
|
+
grep -E "(react|vue|angular|next|nuxt|svelte|vite)" package.json 2>/dev/null
|
|
119
|
+
|
|
120
|
+
# Verificar indicadores de Backend
|
|
121
|
+
ls requirements.txt go.mod pom.xml Cargo.toml 2>/dev/null
|
|
122
|
+
grep -E "(express|fastify|nest|koa|hapi)" package.json 2>/dev/null
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
| Indicador | Tipo |
|
|
126
|
+
|-----------|------|
|
|
127
|
+
| `react`, `vue`, `angular`, `next`, `svelte`, `vite` | Frontend |
|
|
128
|
+
| `express`, `fastify`, `nest`, `koa`, `hapi` | Backend |
|
|
129
|
+
| `requirements.txt`, `pytest` | Backend (Python) |
|
|
130
|
+
| `go.mod` | Backend (Go) |
|
|
131
|
+
| `pom.xml`, `build.gradle` | Backend (Java) |
|
|
132
|
+
|
|
133
|
+
### A.2. Detectar Porta Local
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Verificar porta em package.json ou .env
|
|
137
|
+
grep -E "PORT|port" package.json .env 2>/dev/null
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
| Framework | Porta Padrão |
|
|
141
|
+
|-----------|-------------|
|
|
142
|
+
| Vite/React | 5173 |
|
|
143
|
+
| Next.js/CRA | 3000 |
|
|
144
|
+
| Express/Node | 3000 |
|
|
145
|
+
| Django/FastAPI | 8000 |
|
|
146
|
+
|
|
147
|
+
### A.3. Bootstrap do TestSprite
|
|
148
|
+
|
|
149
|
+
```javascript
|
|
150
|
+
testsprite_bootstrap({
|
|
151
|
+
localPort: 5173, // Ajustar conforme detectado
|
|
152
|
+
type: "frontend", // Ou "backend" conforme detectado
|
|
153
|
+
projectPath: "$PROJECT_ROOT",
|
|
154
|
+
testScope: "diff" // Foca no arquivo específico
|
|
155
|
+
})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### A.4. Gerar Sumário do Código
|
|
159
|
+
|
|
160
|
+
```javascript
|
|
161
|
+
testsprite_generate_code_summary({
|
|
162
|
+
projectRootPath: "$PROJECT_ROOT"
|
|
163
|
+
})
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### A.5. Gerar Plano de Testes
|
|
167
|
+
|
|
168
|
+
Para Frontend:
|
|
169
|
+
```javascript
|
|
170
|
+
testsprite_generate_frontend_test_plan({
|
|
171
|
+
projectPath: "$PROJECT_ROOT",
|
|
172
|
+
needLogin: false // Ajustar se necessário
|
|
173
|
+
})
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Para Backend:
|
|
177
|
+
```javascript
|
|
178
|
+
testsprite_generate_backend_test_plan({
|
|
179
|
+
projectPath: "$PROJECT_ROOT"
|
|
180
|
+
})
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### A.6. Gerar e Executar Testes
|
|
184
|
+
|
|
185
|
+
```javascript
|
|
186
|
+
testsprite_generate_code_and_execute({
|
|
187
|
+
projectName: "$WORKSPACE",
|
|
188
|
+
projectPath: "$PROJECT_ROOT",
|
|
189
|
+
testIds: [], // Vazio = todos, ou especificar IDs
|
|
190
|
+
additionalInstruction: "Foco em testes unitários para: $ARGUMENTS"
|
|
191
|
+
})
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### A.7. Re-executar Testes (se necessário)
|
|
195
|
+
|
|
196
|
+
```javascript
|
|
197
|
+
testsprite_rerun_tests({
|
|
198
|
+
projectPath: "$PROJECT_ROOT"
|
|
199
|
+
})
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### A.8. Saída do TestSprite
|
|
203
|
+
|
|
204
|
+
O TestSprite gera automaticamente:
|
|
205
|
+
- `testsprite_tests/` - Pasta com todos os testes gerados
|
|
206
|
+
- `TestSprite_MCP_Test_Report.md` - Relatório em Markdown
|
|
207
|
+
- `TestSprite_MCP_Test_Report.html` - Relatório em HTML
|
|
208
|
+
- `testsprite_tests/tmp/test_results.json` - Resultados detalhados
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## FLUXO B: Geração Manual (Fallback)
|
|
213
|
+
|
|
214
|
+
Se o TestSprite MCP NÃO estiver disponível, siga o fluxo manual abaixo.
|
|
215
|
+
|
|
216
|
+
### Padrões Críticos (Fluxo Manual)
|
|
217
|
+
|
|
218
|
+
#### Padrão 1: Detectar Framework de Teste
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
# JavaScript/TypeScript
|
|
222
|
+
grep -E "(jest|vitest|mocha|jasmine)" package.json
|
|
223
|
+
|
|
224
|
+
# Python
|
|
225
|
+
ls pytest.ini pyproject.toml setup.cfg 2>/dev/null | head -1
|
|
226
|
+
|
|
227
|
+
# Go - usa testing nativo
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
| Framework | Padrão de Arquivo | Import |
|
|
231
|
+
|-----------|-------------------|--------|
|
|
232
|
+
| Jest | `*.test.ts`, `*.spec.ts` | `import { describe, it, expect } from '@jest/globals'` |
|
|
233
|
+
| Vitest | `*.test.ts`, `*.spec.ts` | `import { describe, it, expect } from 'vitest'` |
|
|
234
|
+
| Pytest | `test_*.py`, `*_test.py` | `import pytest` |
|
|
235
|
+
| Go | `*_test.go` | `import "testing"` |
|
|
236
|
+
|
|
237
|
+
#### Padrão 2: Estrutura AAA (Arrange-Act-Assert)
|
|
238
|
+
|
|
239
|
+
Todo teste deve seguir a estrutura AAA:
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
describe('NomeDaFuncao', () => {
|
|
243
|
+
it('should [comportamento esperado] when [condição]', () => {
|
|
244
|
+
// Arrange - Preparar dados de entrada
|
|
245
|
+
const input = { ... };
|
|
246
|
+
|
|
247
|
+
// Act - Executar a função
|
|
248
|
+
const result = funcao(input);
|
|
249
|
+
|
|
250
|
+
// Assert - Verificar resultado
|
|
251
|
+
expect(result).toBe(esperado);
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
#### Padrão 3: Cobertura Mínima de Cenários
|
|
257
|
+
|
|
258
|
+
Todo teste deve cobrir:
|
|
259
|
+
- Caminho feliz (happy path)
|
|
260
|
+
- Casos de borda (edge cases)
|
|
261
|
+
- Tratamento de erros
|
|
262
|
+
- Valores nulos/undefined
|
|
263
|
+
|
|
264
|
+
### Árvore de Decisão (Fluxo Manual)
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
Arquivo TypeScript? → Jest ou Vitest (verificar package.json)
|
|
268
|
+
Arquivo Python? → Pytest
|
|
269
|
+
Arquivo Go? → testing nativo
|
|
270
|
+
Arquivo Java? → JUnit
|
|
271
|
+
Caso contrário → Perguntar ao usuário
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Fluxo de Trabalho (Manual)
|
|
275
|
+
|
|
276
|
+
#### B.1. Analisar Arquivo de Origem
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Ler o arquivo para entender a estrutura
|
|
280
|
+
cat $ARGUMENTS
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Identificar:
|
|
284
|
+
- Funções/métodos exportados
|
|
285
|
+
- Dependências e imports
|
|
286
|
+
- Tipos de entrada e saída
|
|
287
|
+
- Possíveis cenários de teste
|
|
288
|
+
|
|
289
|
+
#### B.2. Verificar Testes Existentes
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# Verificar se já existe arquivo de teste
|
|
293
|
+
ls ${ARGUMENTS%.ts}.test.ts 2>/dev/null || \
|
|
294
|
+
ls ${ARGUMENTS%.ts}.spec.ts 2>/dev/null || \
|
|
295
|
+
echo "Nenhum teste encontrado"
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
#### B.3. Criar Arquivo de Teste
|
|
299
|
+
|
|
300
|
+
Criar o arquivo de teste seguindo:
|
|
301
|
+
- Convenção de nomenclatura do projeto
|
|
302
|
+
- Imports necessários
|
|
303
|
+
- Mocks de dependências externas
|
|
304
|
+
|
|
305
|
+
#### B.4. Implementar Testes
|
|
306
|
+
|
|
307
|
+
Para cada função/método:
|
|
308
|
+
1. Criar `describe` block
|
|
309
|
+
2. Implementar casos de teste (happy path primeiro)
|
|
310
|
+
3. Adicionar casos de borda
|
|
311
|
+
4. Adicionar casos de erro
|
|
312
|
+
|
|
313
|
+
#### B.5. Executar e Validar
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
# JavaScript/TypeScript
|
|
317
|
+
npm test -- --testPathPattern={arquivo}
|
|
318
|
+
|
|
319
|
+
# Python
|
|
320
|
+
pytest {arquivo} -v
|
|
321
|
+
|
|
322
|
+
# Go
|
|
323
|
+
go test -v -run {funcao}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Regras
|
|
329
|
+
|
|
330
|
+
### Nunca
|
|
331
|
+
- Criar testes que dependem de estado externo
|
|
332
|
+
- Usar dados de produção em testes
|
|
333
|
+
- Ignorar casos de erro
|
|
334
|
+
- Criar testes sem assertions
|
|
335
|
+
- Usar `any` em mocks TypeScript
|
|
336
|
+
- Pular a verificação do TestSprite MCP
|
|
337
|
+
|
|
338
|
+
### Sempre
|
|
339
|
+
- Verificar disponibilidade do TestSprite primeiro
|
|
340
|
+
- Seguir estrutura AAA (no fluxo manual)
|
|
341
|
+
- Nomear testes de forma descritiva
|
|
342
|
+
- Isolar testes (não dependem uns dos outros)
|
|
343
|
+
- Mockar dependências externas
|
|
344
|
+
- Cobrir happy path + edge cases + errors
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Tratamento de Erros
|
|
349
|
+
|
|
350
|
+
### Arquivo não encontrado
|
|
351
|
+
- Exibir: "⚠️ Arquivo '{caminho}' não encontrado."
|
|
352
|
+
- Verificar se o caminho está correto
|
|
353
|
+
- Sugerir usar glob para encontrar arquivo
|
|
354
|
+
|
|
355
|
+
### Framework não detectado
|
|
356
|
+
- Exibir: "⚠️ Framework de teste não detectado."
|
|
357
|
+
- Listar frameworks suportados
|
|
358
|
+
- Perguntar ao usuário qual usar
|
|
359
|
+
|
|
360
|
+
### Testes já existem
|
|
361
|
+
- Exibir: "⚠️ Arquivo de teste já existe em '{caminho}'"
|
|
362
|
+
- Perguntar se deseja sobrescrever ou adicionar novos testes
|
|
363
|
+
|
|
364
|
+
### TestSprite falhou
|
|
365
|
+
- Exibir: "⚠️ TestSprite retornou erro. Alternando para fluxo manual."
|
|
366
|
+
- Continuar com Fluxo B automaticamente
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## Checklist de Conclusão
|
|
371
|
+
|
|
372
|
+
### Fluxo A (TestSprite)
|
|
373
|
+
- [ ] TestSprite MCP verificado e disponível
|
|
374
|
+
- [ ] Tipo de projeto detectado (frontend/backend)
|
|
375
|
+
- [ ] Bootstrap executado com sucesso
|
|
376
|
+
- [ ] Plano de testes gerado
|
|
377
|
+
- [ ] Testes executados
|
|
378
|
+
- [ ] Relatório gerado
|
|
379
|
+
|
|
380
|
+
### Fluxo B (Manual)
|
|
381
|
+
- [ ] Arquivo de origem analisado
|
|
382
|
+
- [ ] Framework de teste identificado
|
|
383
|
+
- [ ] Arquivo de teste criado no padrão correto
|
|
384
|
+
- [ ] Todos os exports públicos testados
|
|
385
|
+
- [ ] Happy path coberto
|
|
386
|
+
- [ ] Edge cases cobertos
|
|
387
|
+
- [ ] Casos de erro cobertos
|
|
388
|
+
- [ ] Testes executados com sucesso
|
|
389
|
+
- [ ] Sem warnings ou erros de tipo
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## Output
|
|
394
|
+
|
|
395
|
+
### Fluxo A (TestSprite MCP)
|
|
396
|
+
|
|
397
|
+
| Artefato | Descrição |
|
|
398
|
+
|----------|-----------|
|
|
399
|
+
| `testsprite_tests/` | Pasta com testes gerados automaticamente |
|
|
400
|
+
| `TestSprite_MCP_Test_Report.md` | Relatório em Markdown |
|
|
401
|
+
| `TestSprite_MCP_Test_Report.html` | Relatório visual em HTML |
|
|
402
|
+
| `testsprite_tests/tmp/test_results.json` | Resultados detalhados em JSON |
|
|
403
|
+
|
|
404
|
+
### Fluxo B (Manual)
|
|
405
|
+
|
|
406
|
+
| Artefato | Descrição |
|
|
407
|
+
|----------|-----------|
|
|
408
|
+
| `{arquivo}.test.ts` | Arquivo de teste unitário (TypeScript/Jest) |
|
|
409
|
+
| `{arquivo}.spec.ts` | Arquivo de teste unitário (TypeScript/Vitest) |
|
|
410
|
+
| `test_{arquivo}.py` | Arquivo de teste unitário (Python/Pytest) |
|
|
411
|
+
| `{arquivo}_test.go` | Arquivo de teste unitário (Go) |
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
## Mensagem de Conclusão
|
|
416
|
+
|
|
417
|
+
### Fluxo A (TestSprite)
|
|
418
|
+
|
|
419
|
+
```
|
|
420
|
+
Testes unitários gerados com TestSprite!
|
|
421
|
+
|
|
422
|
+
Arquivo de origem: {caminho-origem}
|
|
423
|
+
Método: TestSprite MCP (automático)
|
|
424
|
+
Tipo: {frontend|backend}
|
|
425
|
+
|
|
426
|
+
Artefatos gerados:
|
|
427
|
+
- testsprite_tests/
|
|
428
|
+
- TestSprite_MCP_Test_Report.md
|
|
429
|
+
- TestSprite_MCP_Test_Report.html
|
|
430
|
+
|
|
431
|
+
Próximo passo: Revisar o relatório em TestSprite_MCP_Test_Report.md
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Fluxo B (Manual)
|
|
435
|
+
|
|
436
|
+
```
|
|
437
|
+
Testes unitários criados manualmente!
|
|
438
|
+
|
|
439
|
+
Arquivo de origem: {caminho-origem}
|
|
440
|
+
Arquivo de teste: {caminho-teste}
|
|
441
|
+
Framework: {framework}
|
|
442
|
+
|
|
443
|
+
Cobertura:
|
|
444
|
+
- [x] Funções testadas: {n}
|
|
445
|
+
- [x] Casos de teste: {n}
|
|
446
|
+
- [x] Happy path: {n}
|
|
447
|
+
- [x] Edge cases: {n}
|
|
448
|
+
- [x] Error cases: {n}
|
|
449
|
+
|
|
450
|
+
Comando para executar:
|
|
451
|
+
{comando-de-execução}
|
|
452
|
+
|
|
453
|
+
Próximo passo: Executar os testes com o comando acima
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## Resumo dos Fluxos
|
|
459
|
+
|
|
460
|
+
| Aspecto | Fluxo A (TestSprite) | Fluxo B (Manual) |
|
|
461
|
+
|---------|---------------------|------------------|
|
|
462
|
+
| Quando usar | TestSprite MCP disponível | TestSprite não instalado |
|
|
463
|
+
| Automação | Total - gera e executa testes | Parcial - requer implementação |
|
|
464
|
+
| Saída | Testes + Relatório HTML/MD | Arquivo de teste |
|
|
465
|
+
| Esforço | Mínimo | Requer escrita manual |
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Recursos Adicionais
|
|
470
|
+
|
|
471
|
+
- **Referências**: Ver [references/](references/) para guias de teste do projeto
|