# Execução — `PR-2` Extrato do ponto por jogo

**Plano:** `PR-2-plano.md` · **Data:** 07/08/2026
**Ambiente:** backend local (`test/ranking.e2e-spec.ts`, `test/correcao.e2e-spec.ts`,
`test/sigilo-pontuacao.e2e-spec.ts`, `test/cc2-tabela-customizada.e2e-spec.ts`),
Flutter em teste de widget (`test/extrato_page_test.dart`).

**Resultado: 11/11 ✅** — nenhum defeito novo. Todos os casos já tinham cobertura;
a execução mapeou onde cada um vive e registrou o que **não** existe.

| ID | Resultado | Onde |
| -- | --------- | ---- |
| PR-2-01 | ✅ | e2e "extrato mostra a conta por jogo, com o motivo do ponto" |
| PR-2-02 | ✅ | e2e mesma suíte (campo `band`) + widget "mostra a conta do ponto" |
| PR-2-03 | ✅ | e2e "extrato inclui jogos sem palpite, não os omite" |
| PR-2-04 | ✅ | widget "placar atrasado continua como espera, não como zero" |
| PR-2-05 | ✅ | e2e "jogo terminado sem palpite aparece como SEM_PALPITE" |
| PR-2-06 | ✅ | e2e "a soma do extrato bate com o total do ranking" |
| PR-2-07 | ✅ por construção | ver abaixo |
| PR-2-08 | ✅ | e2e "quem não participa não vê ranking nem extrato" |
| PR-2-09 | ✅ | e2e "o extrato marca o jogo corrigido e mostra o placar anterior" + "PR-6-08" |
| PR-2-10 | ✅ | e2e "CC-2-06b o extrato explica o ponto pela tabela do bolão" |
| PR-2-11 | ✅ | widget "prazo aberto é sinalizado como chance de palpitar" |

## `PR-2-07` — não existe extrato de terceiro

A task `BE-3` fala em "respeitar o sigilo de PP-7 no extrato de terceiros". Na
implementação **não há rota** para o extrato de outra pessoa: o endpoint é sempre
o do dono do token (`/matchdays/:matchday/statement`). O sigilo, aqui, é garantido
por construção — não há o que autorizar.

A via legítima de ver palpite alheio é a de `PP-7`
(`/matches/:matchId/predictions`), que libera **no fim do jogo** e é coberta na
suíte de sigilo, inclusive para admin. Registro isso em vez de marcar o caso como
"passou" num teste que não existe: quem ler a task isolada vai procurar uma
checagem de autorização que não tem por que existir.

## Observações

- **`PR-2-06` é o caso que sustenta o extrato como árbitro.** A soma das linhas
  bate com o total do ranking. Um ponto de diferença destruiria a confiança nos
  dois números ao mesmo tempo — e ninguém saberia qual acreditar.
- **`PR-2-05` continua sendo o defeito mais instrutivo desta story:** o extrato
  dizia "aguardando resultado" com o placar oficial na tela ao lado. O
  participante concluía que o sistema tinha perdido o palpite dele — quando ele
  simplesmente não havia palpitado.
- **`PR-2-09` é a única mitigação prevista para o poder do admin:** correção
  aparece com o placar anterior e marcada como intervenção **manual**. Ponto que
  cai sem explicação é indistinguível de bug — ou de fraude.
