# ClientFlow E2E Deep Coverage Overlay

Acrescenta uma camada de cobertura mais agressiva ao E2E já existente.

## O que testa

1. Core E2E existente:
   - mocks OpenRouter, Jasmin, Contactos, Odoo, Chatwoot;
   - `/analyze`;
   - Chatwoot WebSocket;
   - reconciliação;
   - páginas principais;
   - APIs internas.

2. Deep UI/API audit:
   - GET de páginas, aliases e partials HTMX;
   - links internos encontrados no HTML;
   - forms sem action, métodos inválidos, ids duplicados;
   - botões sem label;
   - padrões de erro renderizados no HTML;
   - API de contactos com GET/POST e casos inválidos;
   - criação/update de cliente;
   - criação/update/toggle de produto;
   - criação de oportunidade;
   - add/delete de item de oportunidade;
   - lifecycle de tarefas: reclassify, reschedule, complete, complete-with-note, skip;
   - endpoints de reconciliação;
   - endpoints de integração Odoo;
   - operações de oportunidade quando aplicáveis.

3. Playwright UI opcional:
   - navegação real em browser;
   - clique em links de navegação;
   - submit visual de forms de cliente/produto/oportunidade;
   - botões de reconciliação;
   - captura de screenshots em falha;
   - deteção de `pageerror` e `console.error`.

## Comandos

Aplicar overlay:

```bash
cd ~/Transferências/clientflow_backend_v4928_1_5_40_with_e2e_test_lab/cf_v1532_work
unzip -o ~/Transferências/clientflow_e2e_deep_coverage_overlay.zip -d .
chmod +x e2e_test_lab/scripts/*.sh
source .venv/bin/activate
pip install -r e2e_test_lab/requirements-e2e.txt
```

Correr core + deep API/HTML:

```bash
./e2e_test_lab/scripts/run_deep_e2e_lab.sh | tee e2e_test_lab/latest_deep_e2e_run.log
```

Instalar browser Playwright:

```bash
./e2e_test_lab/scripts/install_playwright_ui.sh
```

Correr tudo incluindo browser real:

```bash
RUN_PLAYWRIGHT_UI=1 ./e2e_test_lab/scripts/run_deep_e2e_lab.sh | tee e2e_test_lab/latest_deep_e2e_run.log
```

Ver resumos:

```bash
tail -120 e2e_test_lab/latest_deep_e2e_run.log
cat e2e_test_lab/latest_deep_audit_report.md
```

## Nota

Isto aumenta muito a cobertura, mas `100%` literal não é garantível sem instrumentação de cobertura por código, mapa completo de estados de negócio e dados de teste para todas as combinações. Este overlay aproxima o E2E de um teste de regressão funcional completo.
