원클릭으로
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)