# Plano de testes — `PP-3` Contagem de tempo restante por jogo

**Story:** `docs/stories/PP-3-contagem-tempo-restante.md`

Todo o produto gira em torno de prazo, e o prazo é do **servidor**. Se a contagem
seguir o relógio do aparelho, quem tem o celular adiantado perde o palpite sem
entender por quê — e quem tem atrasado acha que ainda dá tempo. É o defeito com
maior potencial de acusação de trapaça.

| ID | Título | Tipo | Prioridade |
| -- | ------ | ---- | ---------- |
| PP-3-01 | A resposta traz o horário do servidor | caminho feliz | alta |
| PP-3-02 | Aberto/fechado é decisão do servidor | regra de negócio | alta |
| PP-3-03 | Device adiantado não perde tempo | regra de negócio | alta |
| PP-3-04 | Device atrasado não ganha tempo | regra de negócio | alta |
| PP-3-05 | Sem desvio, contagem coincide | caminho feliz | média |
| PP-3-06 | Prazo vencido aparece como fechado | caminho feliz | alta |
| PP-3-07 | Texto legível: dias, horas, minutos | UI | média |
| PP-3-08 | Menos de um minuto tem texto próprio | UI | alta |
| PP-3-09 | Contagem zerando fecha o cartão sem recarregar | UI | alta |
| PP-3-10 | Horário local com o fuso indicado | UI | alta |
| PP-3-11 | Relógio do aparelho alterado em device real | verificação em device | alta |

---

### PP-3-01 — A resposta traz o horário do servidor
**Tipo:** caminho feliz · **Prioridade:** alta
**Resultado esperado:** `serverTime` na resposta da rodada, junto do prazo de
cada jogo. É o que permite ao app calcular o desvio.

### PP-3-02 — Aberto/fechado é decisão do servidor
**Tipo:** regra de negócio · **Prioridade:** alta
**Resultado esperado:** cada jogo vem com o estado do prazo já resolvido. O app
usa a contagem para **exibir**, nunca para decidir.

### PP-3-03 — Device adiantado não perde tempo
**Tipo:** regra de negócio · **Prioridade:** alta
**Passos:** relógio do aparelho 3 h à frente do servidor.
**Resultado esperado:** a contagem continua correta. Sem o desvio, o participante
veria o prazo fechado 3 h antes e perderia a rodada.

### PP-3-04 — Device atrasado não ganha tempo
**Tipo:** regra de negócio · **Prioridade:** alta
**Resultado esperado:** a contagem não estica. Ganhar tempo é pior que perder:
a pessoa acha que dá tempo, e o servidor recusa.

### PP-3-05 — Sem desvio, contagem coincide
**Tipo:** caminho feliz · **Prioridade:** média

### PP-3-06 — Prazo vencido aparece como fechado
**Tipo:** caminho feliz · **Prioridade:** alta
**Resultado esperado:** texto de fechado, campo desabilitado, sem envio.

### PP-3-07 — Texto legível: dias, horas, minutos
**Tipo:** UI · **Prioridade:** média
**Resultado esperado:** "fecha em 1d 23h", "fecha em 2h 15min" — sem o
participante ter de calcular.

### PP-3-08 — Menos de um minuto tem texto próprio
**Tipo:** UI · **Prioridade:** alta
**Resultado esperado:** "fecha em menos de 1min". É o momento crítico: arredondar
para "0min" pareceria já fechado.

### PP-3-09 — Contagem zerando fecha o cartão sem recarregar
**Tipo:** UI · **Prioridade:** alta
**Resultado esperado:** o cartão passa a fechado com a tela aberta. Quem está
digitando na hora do apito precisa ver isso acontecer.

### PP-3-10 — Horário local com o fuso indicado
**Tipo:** UI · **Prioridade:** alta
**Resultado esperado:** "01/10 às 18:00 UTC-03". Sem o fuso, quem viaja lê o
horário errado com confiança total.

### PP-3-11 — Relógio do aparelho alterado em device real
**Tipo:** verificação em device · **Prioridade:** alta
**Passos:** com o app aberto num jogo com prazo aberto, adiantar o relógio do
aparelho em horas e conferir a contagem; depois atrasar.
**Resultado esperado:** a contagem segue o servidor. É a verificação que a story
pede em `QA-2` e a única que exercita o relógio de verdade — o teste de unidade
injeta o desvio, o device o produz.
