# Plano de testes — `CC-9` Remover participante do bolão

**Story:** `docs/stories/CC-9-remover-participante.md`

Remoção é irreversível e mexe no dado de outra pessoa: os palpites e pontos do
removido **ficam** no histórico e a pontuação de quem ficou **não** é
recalculada. O risco central é o admin conseguir usar a remoção como forma de
apagar histórico alheio ou de mudar a classificação retroativamente.

| ID | Título | Tipo | Prioridade |
| -- | ------ | ---- | ---------- |
| CC-9-01 | Admin remove: para de palpitar e sai do ranking ativo | caminho feliz | alta |
| CC-9-02 | Histórico do removido permanece | regra de negócio | alta |
| CC-9-03 | Pontuação de quem ficou não é recalculada | regra de negócio | alta |
| CC-9-04 | Participante comum não remove ninguém | autorização | alta |
| CC-9-05 | Removido não entra de novo pelo convite | regra de negócio | alta |
| CC-9-06 | Removido para de receber lembrete de prazo | regra de negócio | alta |
| CC-9-07 | Criador não pode ser removido | autorização | alta |
| CC-9-08 | Remover quem já saiu é recusado | borda | média |
| CC-9-09 | Admin removendo a si mesmo é mandado para "sair" | borda | média |
| CC-9-10 | Remover quem não é do bolão responde 404 | borda | alta |
| CC-9-11 | Confirmação antes de remover, dizendo que é definitivo | UI | alta |
| CC-9-12 | Ação de remover só aparece para admin | UI | alta |

---

### CC-9-01 — Admin remove: para de palpitar e sai do ranking ativo
**Tipo:** caminho feliz · **Prioridade:** alta
**Resultado esperado:** o vínculo é encerrado (`leftAt`), o removido recebe 403
ao palpitar e ao ler o bolão, e não aparece mais no ranking ativo.

### CC-9-02 — Histórico do removido permanece
**Tipo:** regra de negócio · **Prioridade:** alta
**Resultado esperado:** a contagem de palpites e os pontos apurados dele não
mudam. Decisão de 03/08: impede que o admin apague histórico alheio.

### CC-9-03 — Pontuação de quem ficou não é recalculada
**Tipo:** regra de negócio · **Prioridade:** alta
**Passos:** anotar pontos e posição dos que ficam, remover um participante,
reler o ranking.
**Resultado esperado:** pontos idênticos. A posição pode subir por o removido ter
saído da lista — o que **não** pode acontecer é o ponto de alguém mudar. Se
mudasse, o admin teria uma alavanca para alterar a classificação.

### CC-9-04 — Participante comum não remove ninguém
**Tipo:** autorização · **Prioridade:** alta
**Resultado esperado:** 403. Sem isso qualquer um expulsa o rival do ranking.

### CC-9-05 — Removido não entra de novo pelo convite
**Tipo:** regra de negócio · **Prioridade:** alta
**Resultado esperado:** 409, igual a quem saiu por vontade própria — a remoção
reusa a mesma regra de encerramento de vínculo (CV-4).

### CC-9-06 — Removido para de receber lembrete de prazo
**Tipo:** regra de negócio · **Prioridade:** alta
**Resultado esperado:** zero lembretes para o removido. Continuar avisando
alguém sobre o prazo de um bolão de que ele foi tirado é a pior notificação
possível: cobra ação impossível e lembra a expulsão.

### CC-9-07 — Criador não pode ser removido
**Tipo:** autorização · **Prioridade:** alta
**Resultado esperado:** 409 com motivo próprio (admin permanente, CC-8). O
segundo admin não pode expulsar quem criou o bolão.

### CC-9-08 — Remover quem já saiu é recusado
**Tipo:** borda · **Prioridade:** média
**Resultado esperado:** 409 "já saiu do bolão", sem reescrever a data de saída —
a data original é o que separa o palpite válido do inválido no histórico.

### CC-9-09 — Admin removendo a si mesmo é mandado para "sair"
**Tipo:** borda · **Prioridade:** média
**Resultado esperado:** 400 dizendo para usar a ação de sair. A saída tem regra
própria (último admin, criador) que a remoção não aplica; deixar passar por aqui
seria uma porta lateral para o bolão ficar sem admin.

### CC-9-10 — Remover quem não é do bolão responde 404
**Tipo:** borda · **Prioridade:** alta
**Resultado esperado:** 404, e nenhum vínculo criado ou alterado no outro bolão
onde essa pessoa participa.

### CC-9-11 — Confirmação antes de remover, dizendo que é definitivo
**Tipo:** UI · **Prioridade:** alta
**Resultado esperado:** diálogo com o nome de quem será removido e a palavra
"definitivo"/"não poderá voltar". Requisito, não polimento: não há reentrada.

### CC-9-12 — Ação de remover só aparece para admin
**Tipo:** UI · **Prioridade:** alta
**Resultado esperado:** participante comum não vê a ação; e ela não aparece para
o criador (é onde a `FE-3` está em aberto — ver a decisão pendente na story).
