# Staging e Testes E2E — Fase 19.6

Guia para configurar ambiente de homologação e executar testes E2E antes de produção.

## Objetivo

- Ambiente staging separado de produção
- Banco com dados anonimizados
- Integrações em sandbox (Cielo, PIX, etc.)
- Testes E2E cobrindo fluxo de compra

## Arquitetura sugerida

```
┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  Frontend       │     │  API (PHP)      │     │  MySQL          │
│  Next.js:3000   │────▶│  :8080          │────▶│  :3306          │
└─────────────────┘     └─────────────────┘     └─────────────────┘
        │                        │
        │                        │ CIELO_SANDBOX=1
        │                        │ VAPID_* (teste)
        └────────────────────────┘
```

## Configuração Docker

### Variáveis de ambiente para staging

```yaml
# docker-compose.staging.yml (exemplo)
services:
  app:
    environment:
      APP_ENV: staging
      CIELO_SANDBOX: "1"
      CIELO_MERCHANT_ID: ${CIELO_MERCHANT_ID}
      CIELO_MERCHANT_KEY: ${CIELO_MERCHANT_KEY}
      CIELO_SANDBOX: "1"
      VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY}
      VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY}
      # ... MYSQL_*, etc.
```

### Frontend

```bash
# .env.staging
NEXT_PUBLIC_API_URL=https://staging-api.lotericapremiada.com.br
NEXT_PUBLIC_LEGACY_URL=
NEXT_PUBLIC_CHAT_WIDGET_ID=
NEXT_PUBLIC_WHATSAPP_NUMBER=5511999999999
```

## Dados anonimizados

Para staging, evite dados reais:

1. **Script de seed:** `scripts/seed-completo-v2.php` já cria clientes de teste
2. **Clientes de teste:**

   | E-mail | Senha | Uso |
   |--------|-------|-----|
   | teste@lotericapremiada.com.br | 123456 | Cliente |
   | admin | admin123 | Admin |

3. **Anonimização:** Se copiar banco de produção, executar scripts para:
   - Mascarar CPF, e-mail, telefone
   - Remover dados sensíveis de pagamento

## Testes E2E

### Suite existente

```bash
# Executar suite completa (PHP, curl, Python, layout, mobile, gargalos, conferência, build)
bash tests/suite-completa-total.sh http://localhost:8080 http://localhost:3000
```

### Playwright (E2E browser)

```bash
cd /home/guilherme/workspace/loterica-premiada
npx playwright test tests/e2e-browser.spec.ts
```

### Fluxo de compra (E2E)

Cenário mínimo para validar:

1. Acessar home
2. Login (teste@lotericapremiada.com.br / 123456)
3. Adicionar jogo ao carrinho (ex: Mega-Sena)
4. Ir ao carrinho
5. Finalizar (ou até compra de créditos em sandbox)

### Checklist de smoke

- [ ] GET /api/v2/health retorna 200
- [ ] Login funciona
- [ ] Carrinho adiciona/remove itens
- [ ] Página de créditos carrega
- [ ] Cielo sandbox (se credenciais configuradas)
- [ ] Conferência de premiação (admin)

## Referências

- tests/README-SUITE-COMPLETA.md
- tests/suite-completa-total.sh
- tests/e2e-browser.spec.ts
- docs/v2/credenciais-producao.md
- ideias-melhorias.md §11
