ワンクリックで
test-regression
Skill para validação de regressão em testes — verificar que mudanças não quebraram funcionalidades existentes.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Skill para validação de regressão em testes — verificar que mudanças não quebraram funcionalidades existentes.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Skill para criar novos geradores de dados seguindo as convenções do projeto Fill All.
Skill para planejamento de roadmap, gestão de features, milestones e priorização de tarefas do projeto Fill All.
Skill para realizar code reviews alinhados com as convenções e padrões de qualidade do projeto Fill All.
Skill para investigação e debug sistemático de bugs — reproduzir, isolar, corrigir e validar com scripts.
Skill para gerenciamento seguro de dependências npm — auditoria, atualização, lock files e breaking changes.
Skill para gerenciamento de internacionalização (i18n) — traduções, chaves de locale, chrome.i18n API e boas práticas.
| name | test-regression |
| description | Skill para validação de regressão em testes — verificar que mudanças não quebraram funcionalidades existentes. |
| license | MIT |
| compatibility | Node.js 18+, TypeScript 5.x, Chrome Extension Manifest V3 |
| metadata | {"author":"marcusp","version":"1.0","project":"fill-all","category":"testing"} |
Garantir que qualquer alteração no código não quebre funcionalidades existentes. Esta skill define o processo completo de validação de regressão usando testes unitários (Vitest) e E2E (Playwright).
# Executar testes unitários para ter baseline
npm test
# Verificar coverage atual
npm run test:coverage
# Verificar tipos
npm run type-check
# Build limpo
npm run build
⚠️ Anotar número de testes passando e percentuais de coverage ANTES de fazer alterações.
# Verificação rápida — tipos + unitários
npm run type-check && npm test
# Verificação completa — tipos + unitários + E2E
npm run type-check && npm run build && npm run test:all
# Verificação com coverage — comparar com baseline
npm run test:coverage
| Critério | Esperado | Comando |
|---|---|---|
| Type-check | Zero erros | npm run type-check |
| Testes unitários | Todos passando | npm test |
| Testes E2E | Todos passando | npm run test:e2e |
| Coverage linhas | ≥ 85% (configurado em vitest.config.ts) | npm run test:coverage |
| Coverage statements | ≥ 85% (configurado em vitest.config.ts) | npm run test:coverage |
| Coverage funções | ≥ 85% (configurado em vitest.config.ts) | npm run test:coverage |
| Coverage branches | ≥ 85% (configurado em vitest.config.ts) | npm run test:coverage |
| Build | Sem erros | npm run build |
src/lib/generators/)# Testes específicos
npx vitest run src/lib/generators
# Verificar que dados gerados são válidos (CPF, CNPJ, etc.)
# Testes devem rodar 30+ iterações para detectar aleatoriedade
generatorMap em index.ts mapeia corretamentethrow — retorna fallbacksrc/lib/form/detectors/)# Testes específicos
npx vitest run src/lib/form/detectors
# Validação do dataset
npx vitest run src/lib/dataset
DEFAULT_PIPELINE não foi alterada sem necessidadenull quando sem confiançaevaluateClassifier())src/lib/storage/)npx vitest run src/lib/storage
updateStorageAtomically()fill_all_ via STORAGE_KEYSthrow — retorna fallbackchrome.storage.localsrc/lib/messaging/)npx vitest run src/lib/messaging
safeParse() → retorna null em falhatypeofthrow# Build necessário antes dos E2E
npm run build
# E2E específicos
npx playwright test src/lib/form/__tests__/e2e/
input/change/blur são disparadosnpx vitest run src/background
# Rodar teste específico com verbose
npx vitest run <caminho-do-teste> --reporter=verbose
# Rodar teste específico em modo watch (re-executa ao salvar)
npx vitest <caminho-do-teste>
# Rodar E2E com UI interativa (debug visual)
npx playwright test --ui
# Rodar E2E com trace para debug
npx playwright test --trace on
# Ver relatório de testes E2E
npx playwright show-report
# Coverage detalhado por arquivo
npm run test:coverage
# Abrir relatório HTML
open .coverage/unit/index.html
# Coverage combinado (unit + E2E)
npm run coverage:all
open coverage/index.html
| Sintoma | Causa Comum | Solução |
|---|---|---|
| Import não encontrado | Barrel export não atualizado | Adicionar export em index.ts |
| Type error após refactor | Tipo alterado sem atualizar consumers | Verificar usages com tsc --noEmit |
| Teste falhando sem mudança | Mock global alterado em setup.ts | Isolar mocks por teste com vi.clearAllMocks() |
| E2E timeout | Build desatualizado | Rodar npm run build antes |
| Coverage caiu | Novo código sem testes | Adicionar testes para código novo |
| Generator retorna inválido | Lógica de dígito verificador quebrada | Rodar 30+ iterações no teste |
npm run type-check && npm test antes de commitvi.clearAllMocks() no beforeEachsetup.ts sem necessidadeO projeto inclui scripts dedicados para automação de validações:
# ─── validate-step.sh ─── Validação step-by-step com feedback colorido
# Validação rápida (após cada mudança)
./scripts/validate-step.sh types
# Validação média (antes de commit)
./scripts/validate-step.sh types unit
# Validação completa (antes de PR/merge)
./scripts/validate-step.sh types unit build
# Validação com E2E (mudanças DOM)
./scripts/validate-step.sh types unit build e2e
# ─── snapshot-health.sh ─── Captura e comparação de saúde do projeto
# ANTES de fazer mudanças — salvar baseline
./scripts/snapshot-health.sh --save
# DEPOIS de fazer mudanças — comparar com baseline
./scripts/snapshot-health.sh --compare
npm run validate:quick # types + unit
npm run validate # types + unit + build
npm run validate:full # types + unit + build + e2e
npm run health:save # Salvar baseline
npm run health:compare # Comparar com baseline
# Validação completa pre-commit
npm run type-check && npm run build && npm run test:all
npm run type-check — Rápido, detecta erros de tiponpm test — Testes unitários (segundos)npm run build — Build de produçãonpm run test:e2e — Testes E2E (mais lento, requer build)npm run test:coverage — Coverage (opcional, para relatório)