Skip to content
Commit a83d5e14 authored by Igor Matheus's avatar Igor Matheus
Browse files

MG-8 (parcial): o mapa que impede esta story de ser fingida



228 casos verdes no Firebase (16 arquivos). Entram 34 casos de paridade com o id
de origem preservado e a medição de custo.

O mapa é script, não tabela

docs/cobertura.py varre os planos da fase 1 e diz onde cada caso é verificado
hoje. Existe como script porque o risco escrito na própria story é "é a story
mais fácil de fingir que foi feita", e tabela escrita à mão envelhece em silêncio.
O critério é rigoroso de propósito: só conta como verificado quando o id aparece
num teste da stack nova. Resultado honesto: 188 de 420 (44%).

Os 231 restantes não são um bloco só, e tratá-los como um seria o erro que a
story avisa: casos de tela cujo teste existe e passa mas não cita o id; casos cujo
mecanismo deixou de existir (rotação de refresh, rate limit de login, "não há
recuperação de senha") — reescritos e registrados um a um no mapa, nunca
descartados em silêncio; e o grupo que falta reexecutar, onde CV-2 e PP-8 estão em
zero.

34 casos reexecutados com o id original

PP-7-05 continua sendo PP-7-05. Foi escolhido primeiro o grupo de sigilo, prazo,
papel e autorização — o que sumiria primeiro se "os testes passam" bastasse como
prova. Onde o meio mudou, o caso diz qual é: no NestJS recusava um if num service,
aqui recusa o banco ou a callable. Para quem chama a API direto a diferença é
grande — não existe mais resposta para filtrar.

Custo medido, não estimado

Contador em volta do Firestore, rodando os fluxos de verdade. O ranking geral
custa 50 leituras para uma página de 50 num bolão de 60: uma por linha, não por
participante nem por palpite. Somar na leitura seria 60 x 10 x 38 documentos por
abertura de tela. Um bolão de 60 pessoas gasta ~5.150 leituras por rodada, com
folga de 10x no free tier.

Dois testes meus dependiam de banco recém-criado: contavam avisos e participantes
em bolão de id fixo, e o emulador que fica de pé para o teste em device acumula a
execução anterior. Passaram a criar bolão e participante novos a cada rodada.

Seguem travando a paridade de AC-2 as duas decisões do dono: email enumeration
protection e Identity Platform.

Co-Authored-By: default avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
parent ec68ccd5
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment