2.5 KiB
OPS87 — Pirâmide de verificação: migrar asserções de servidor dos e2e para o paradigma HTTP sem browser (escalar o OPS35) + medir (2026-08-24): lote 1 da pirâmide migra Concepts + PermissionProfile + People para o modo HTTP do OPS35 — mesma cobertura, fração do tempo, menos interação client = menos classes de flake; HomeActions fica classificado para o lote 2 (fatia servidor fina + custo de separação alto; impl plan Decisão 1). Novos specs campaignConceptsHttp (2 testes), campaignPermissionProfileHttp (6 — o spec browser foi deletado, 6/6 eram server), campaignPeopleHttp (8) reusam campaignHttpTest/campaignFixture (auth real via REST login + cookie campaign-token, nenhuma fixture nova); os specs browser foram reduzidos à fatia client (Concepts 2→1 teste, People 12→6: os 2 mistos viraram "omnibox" e "C117 interação", os 4 client intocados C125/C131/C128×2) com cabeçalhos espelho twin. Auditoria 1:1: o HTTP herda os nomes originais dos testes migrados (git log/-g provam a migração); nada removido sem equivalente — 20 testes originais → 13 migrados 1:1 (1 Concepts + 6 PermissionProfile + 6 People) + 3 divididos em fatia servidor (HTTP, nome original) + fatia client (browser, nome novo: Concepts tooltip/popover, People omnibox, C117 interação) + 4 client intocados (C125/C131/C128×2); os 16 testes HTTP = 13 herdados + 3 fatias servidor; guard de console.error/pageerror continua exclusivo de browser. Medição (aceite), prod build, 2 workers, scripts/measure-e2e-family.mjs comitado (reporter JSON, nunca estimativa): baseline pré 54,7s/20t (Concepts 8,1s · PermissionProfile 14,3s · People 32,3s; 1ª rodada poluída por load pós-build deu 98,6s — registrada, comparativo usa a rodada estabilizada); pós 18,9s = −65%: Concepts 8,1→3,8s (−53%, browser 2,5s + HTTP 1,3s), PermissionProfile 14,3→1,6s (−89%, só HTTP), People 32,3→13,5s (−58%, browser 11,3s + HTTP 2,2s); teste HTTP custa 0,2–1,0s contra 2–14s de browser (10–50× por teste). Infra: rendered() (strip <!-- --> do streaming React) extraído do Territories para o fixture base; e2e-affected-manifest.mjs ganhou os specs novos + entrada própria do domínio C142 (advisor/quick-action/shell + rotas de escrita) — o classificador OPS86 seleciona os HTTP no CI; sem mudança de testMatch/config (OPS88 é item separado). Validado em dev e prod build (CI=1 E2E_PROD=1, 27 testes afetados verdes em 19,5s). Closes #833.