# Plano de testes — `CV-3` Encerramento antecipado pelo admin

**Story:** `docs/stories/CV-3-encerramento-antecipado.md`

É a **única saída** para bolão travado — jogo adiado sem data nunca encerra
sozinho. E é irreversível: fecha o bolão com a pontuação que existe. Os dois
riscos são opostos: não existir (bolão preso para sempre) e ser fácil demais de
apertar sem entender o que faz.

| ID | Título | Tipo | Prioridade |
| -- | ------ | ---- | ---------- |
| CV-3-01 | Admin encerra antecipadamente e o ranking é o apurado | caminho feliz | alta |
| CV-3-02 | Fica marcado como antecipado, distinguível do normal | regra de negócio | alta |
| CV-3-03 | Jogos com prazo aberto são fechados | regra de negócio | alta |
| CV-3-04 | Depois de encerrar, palpite é recusado | regra de negócio | alta |
| CV-3-05 | Participante comum não encerra | autorização | alta |
| CV-3-06 | Encerrar duas vezes é recusado | borda | média |
| CV-3-07 | É a saída de bolão travado por jogo adiado | borda | alta |
| CV-3-08 | Confirmação explícita antes, dizendo o peso da ação | UI | alta |
| CV-3-09 | A marca de antecipado aparece no histórico | UI | alta |

---

### CV-3-01 — Admin encerra antecipadamente e o ranking é o apurado
**Tipo:** caminho feliz · **Prioridade:** alta
**Resultado esperado:** encerra na hora, com a classificação que existe. Jogos
sem resultado simplesmente não pontuam — ninguém recebe ponto por jogo que não
aconteceu.

### CV-3-02 — Fica marcado como antecipado, distinguível do normal
**Tipo:** regra de negócio · **Prioridade:** alta
**Resultado esperado:** `closedEarly: true`. Título de bolão encerrado na rodada
5 não vale o mesmo que ganhar o campeonato inteiro, e a marca é o que impede a
confusão anos depois.

### CV-3-03 — Jogos com prazo aberto são fechados
**Tipo:** regra de negócio · **Prioridade:** alta
**Resultado esperado:** nenhum jogo do bolão continua com prazo aberto. Sem isso
alguém palpitaria depois do encerramento e o ranking final mudaria sozinho.

### CV-3-04 — Depois de encerrar, palpite é recusado
**Tipo:** regra de negócio · **Prioridade:** alta
**Resultado esperado:** recusa com motivo de bolão encerrado (não "prazo
fechado", que sugeriria que houve atraso).

### CV-3-05 — Participante comum não encerra
**Tipo:** autorização · **Prioridade:** alta
**Resultado esperado:** 403. Encerrar é irreversível: é a ação em que a
autorização mais importa.

### CV-3-06 — Encerrar duas vezes é recusado
**Tipo:** borda · **Prioridade:** média
**Resultado esperado:** 409 "já está encerrado". Diferente do encerramento
normal, que é idempotente — aqui um segundo encerramento reescreveria a data e a
marca de antecipado.

### CV-3-07 — É a saída de bolão travado por jogo adiado
**Tipo:** borda · **Prioridade:** alta
**Resultado esperado:** com um jogo remarcado para depois do fim do bolão, o
encerramento normal recusa e o antecipado funciona. É a razão de a story existir.

### CV-3-08 — Confirmação explícita antes, dizendo o peso da ação
**Tipo:** UI · **Prioridade:** alta
**Resultado esperado:** diálogo dizendo que é irreversível, que jogos não
apurados ficam sem pontuar e que o título fica marcado como antecipado.

### CV-3-09 — A marca de antecipado aparece no histórico
**Tipo:** UI · **Prioridade:** alta
**Resultado esperado:** a participação encerrada antecipadamente é distinguida na
lista de histórico.
