# Plano de testes — `PR-5` Aplicar e exibir os critérios de desempate

**Story:** `docs/stories/PR-5-desempate.md`

Por que esta story concentra risco: empate sem critério visível é briga
garantida na hora que mais importa, o fim do campeonato. E o critério tem que
aparecer para **os dois lados** do empate — quem está na frente é justamente
quem é questionado.

| ID | Título | Tipo | Prioridade |
| -- | ------ | ---- | ---------- |
| PR-5-01 | Empate resolvido por placares exatos | caminho feliz | alta |
| PR-5-02 | Empate resolvido por acertos de vencedor | caminho feliz | alta |
| PR-5-03 | Empate persistente divide a posição | caminho feliz | alta |
| PR-5-04 | Líder do empate também vê o critério | borda | alta |
| PR-5-05 | Quem perdeu por pontos não vê "desempate" | borda | alta |
| PR-5-06 | Três empatados dividem a mesma posição | borda | alta |
| PR-5-07 | Posição seguinte pula pela quantidade de empatados | borda | alta |
| PR-5-08 | Ordem invertida no bolão muda o resultado | borda | alta |
| PR-5-09 | Ranking de um só participante | borda | média |
| PR-5-10 | Empate desfeito por correção de placar | borda | alta |
| PR-5-11 | Posição dividida com dois dígitos e fonte grande | borda | média |

---

### PR-5-01 — Empate resolvido por placares exatos
**Tipo:** caminho feliz · **Prioridade:** alta
**Dados de teste:** Ana 22 pts / 1 exato; Bruno 22 pts / 0 exatos.
**Resultado esperado:** Ana em 1º, Bruno em 2º; **as duas linhas** com
`decidedBy: EXACT_SCORES` e o texto "desempate: mais placares exatos".

### PR-5-02 — Empate resolvido por acertos de vencedor
**Tipo:** caminho feliz · **Prioridade:** alta
**Dados de teste:** Ana 20 pts / 2 exatos / 3 acertos; Bruno 20 / 2 / 6.
**Resultado esperado:** Bruno em 1º; ambas as linhas com `WINNERS`.

### PR-5-03 — Empate persistente divide a posição
**Tipo:** caminho feliz · **Prioridade:** alta
**Dados de teste:** Ana e Bruno com 20 pts / 2 exatos / 5 acertos.
**Resultado esperado:** os dois em **1º**, `sharedPosition: true`,
`decidedBy: EMPATE_PERSISTE`, e a tela mostra "empate mantido — dividem a
posição" com o ícone de posição compartilhada. Nenhum desempate arbitrário
(nome, data de cadastro, ordem de chegada).

### PR-5-04 — Líder do empate também vê o critério
**Tipo:** borda · **Prioridade:** alta
**Dados de teste:** os mesmos de PR-5-01.
**Passos:**
1. Abrir o ranking **como Ana** (a que está na frente).
**Resultado esperado:** a linha dela traz "desempate: mais placares exatos".
_Este caso existe porque o AC diz "estou empatado com alguém → vejo qual
critério está definindo a ordem entre nós", e a implementação inicial (06/08)
comparava só com a linha **de cima** — o líder via "PONTOS" e ficava sem a
justificativa que ele mais precisa quando é acusado._

### PR-5-05 — Quem perdeu por pontos não vê "desempate"
**Tipo:** borda · **Prioridade:** alta
**Dados de teste:** Ana 30 pts; Bruno 20 pts.
**Resultado esperado:** nenhuma das linhas menciona desempate. Sugerir disputa
onde houve diferença de pontos inventa um conflito.

### PR-5-06 — Três empatados dividem a mesma posição
**Tipo:** borda · **Prioridade:** alta
**Dados de teste:** três participantes com 15 pts / 1 exato / 3 acertos.
**Resultado esperado:** todos em 1º, todos com `sharedPosition: true`.

### PR-5-07 — Posição seguinte pula pela quantidade de empatados
**Tipo:** borda · **Prioridade:** alta
**Dados de teste:** dois com 20 pts idênticos; um com 10 pts.
**Resultado esperado:** `1º, 1º, 3º`. **Não** `1º, 1º, 2º` — dois em 1º e
alguém em 2º é o erro clássico, e ninguém em 3º denuncia a conta errada.

### PR-5-08 — Ordem invertida no bolão muda o resultado
**Tipo:** borda · **Prioridade:** alta
**Pré-condições:** bolão criado com `tiebreakOrder: [WINNERS, EXACT_SCORES]`.
**Dados de teste:** Ana 20 / 3 exatos / 4 acertos; Bruno 20 / 1 exato / 6.
**Resultado esperado:** Bruno em 1º (mais acertos de vencedor). Com a ordem
padrão, Ana ficaria na frente — a ordem é lida **do bolão**, não fixa no código.

### PR-5-09 — Ranking de um só participante
**Tipo:** borda · **Prioridade:** média
**Resultado esperado:** 1º, `sharedPosition: false`, `decidedBy: PONTOS`. Sem
vizinho não há critério a explicar.

### PR-5-10 — Empate desfeito por correção de placar
**Tipo:** borda · **Prioridade:** alta
**Pré-condições:** dois co-campeões empatados em tudo; bolão encerrado.
**Passos:**
1. Corrigir o placar de um jogo em que só um dos dois tinha palpite.
**Resultado esperado:** o ranking deixa de ter posição dividida, o campeão passa
a ser um só, e **os dois** recebem aviso. Nada é congelado pelo encerramento.

### PR-5-11 — Posição dividida com dois dígitos e fonte grande
**Tipo:** borda · **Prioridade:** média
**Pré-condições:** dois empatados em 10º; escala de fonte do sistema em 2×.
**Resultado esperado:** nenhuma listra de overflow, `10º` legível e o ícone de
posição compartilhada visível.
_A largura fixa da coluna estourava exatamente aqui (06/08) — fim de campeonato
com co-campeões, que é quando a tela mais é olhada._
