# Testes — Suíte de casos granulares

Catálogo de **casos de teste** do MadFramework no ambiente QA, organizado por
**área funcional**. Cada área tem um arquivo `NN-area.md` com seus casos
granulares; o acompanhamento macro continua no **Notion**, e aqui ficam os
passos reproduzíveis, evidências e o status caso a caso.

- **Ambiente:** https://mad5qa.lura.zadotec.com.br/web/mad-framework/
- **Branch sob teste:** `testes/pr3-pr4-aplicados` (main + os 2 PRs)
- **Restaurar ambiente:** `cd web && ./reset-framework.sh --prs`

## Como esta pasta é organizada

```
docs/testes/
├── README.md            ← este índice-mestre + progresso geral
├── _template.md         ← modelo para criar um novo roteiro de área
├── 00-smoke.md          ← área SMK — smoke / sanidade do ambiente
├── 01-importador-dados.md  ← área IMP — novo importador de dados
├── 02-sidebar-toggle.md ← área SBR — toggle da sidebar (tema Notch)
├── fixtures/            ← planilhas CSV + SQL de apoio para os testes
│   ├── README-fixtures.md
│   ├── 00-criar-tabelas-rh.sql
│   ├── 01-rh-cargos.csv
│   ├── 02-rh-departamentos.csv
│   ├── 03-rh-funcionarios-partial.csv
│   ├── 04-rh-funcionarios-atomic.csv
│   └── 05-rh-folha-lancamentos.csv
└── NN-<area>.md         ← uma área por arquivo, conforme a suíte cresce
```

Regras de organização (para a suíte escalar sem virar bagunça):

1. **Uma área funcional por arquivo**, prefixo numérico crescente (`NN-`).
2. **Cada caso tem um ID único e estável**: `PREFIXO-NN` (ex.: `IMP-01`).
   O prefixo identifica a área (3 letras); o número nunca é reaproveitado,
   mesmo que um caso seja removido — evita ambiguidade em históricos/Notion.
3. **Granularidade:** um caso = uma verificação observável. Se um passo tem
   dois "esperados" independentes, separe em dois casos.
4. **Novo roteiro:** copie [`_template.md`](_template.md), escolha um prefixo
   livre, e adicione a área na tabela de progresso abaixo.

## Áreas e progresso

| # | Área | Prefixo | Roteiro | Casos | Status |
|---|------|---------|---------|-------|--------|
| 00 | Smoke / sanidade | `SMK` | [00-smoke.md](00-smoke.md) | 4 | ⏳ |
| 01 | Importador de dados | `IMP` | [01-importador-dados.md](01-importador-dados.md) | 14 | ⏳ |
| 02 | Toggle da sidebar (Notch) | `SBR` | [02-sidebar-toggle.md](02-sidebar-toggle.md) | 5 | ⏳ |

> Atualize **Casos** e **Status** ao mexer num roteiro. Status da área =
> pior status entre os casos (❌ > ⏳ > ⚠️ > ✅).

## Legenda de status

| Símbolo | Significado |
|---------|-------------|
| ✅ | Passou |
| ❌ | Falhou |
| ⏳ | Pendente / não executado |
| ⚠️ | Passou com ressalvas |
| ⛔ | Bloqueado (depende de outro caso/ambiente) |

## Formato de cada caso

```
### PREFIXO-NN — Título curto
- **Pré-condição:** estado necessário antes de começar
- **Passos:** 1, 2, 3...
- **Esperado:** comportamento correto e observável
- **Obtido:** ⏳   (preencher ao executar; anexar evidência/erro)
```

Cada arquivo de área termina com uma tabela-resumo dos seus casos
(coluna Caso / Status / Observação).
