You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(e2e): uma fonte de ambiente, em vez de três redações do mesmo segredo
O conserto anterior destravou a suíte (27 specs passaram, contra zero). As 8
que sobraram vermelhas — 6 de system-update no `heartbeat`, o drain do
anti-SSRF e o invite-lifecycle — eram todas 401 em rota interna, e a causa
era a mesma: `INTERNAL_SECRET` estava declarado em TRÊS lugares com valores
diferentes.
.env.e2e e2e-placeholder-nao-e-segredo → o servidor
env: dos 2 passos ci-placeholder-nao-e-segredo → o processo de teste
.env.local do seed ci-placeholder-nao-e-segredo → os seeds
MEDIDO (Playwright 1.5x, webServer que imprime o que recebeu):
var só no process.env → CHEGA (mescla, não substitui)
var nos dois, valores dif. → vence a do `env:` do config
Ou seja: o servidor pegava a do arquivo, o teste mandava a do passo, e
igualar as strings à mão só adiaria a próxima divergência. O conserto é
fonte única — o workflow publica o `.env.e2e` inteiro no `$GITHUB_ENV` e o
`.env.local` do seed passa a ser `cp .env.e2e`. Zero segredos redigitados no
workflow (era 24 linhas).
De brinde, o processo de teste passa a ver as chaves de CIFRA de verdade (32
bytes, geradas pelo script) em vez do rótulo de 21 caracteres que o bloco
`env:` fixava — o mesmo que o comentário do script já registrava como causa
de `credential_decrypt_failed`.
Dois comentários que a medição desmentiu, corrigidos junto:
- `playwright.config.ts` avisava "NÃO declare `env:` aqui sem espalhar
`process.env` junto ... declarar substitui o ambiente inteiro" — e a linha
logo acima declarava `env: envDoE2E()`. O arquivo se contradizia, e a
afirmação é falsa: o Playwright mescla. Trocado pela tabela medida.
- `gerar-env-e2e.sh` prometia "valores iguais aos do CI" e eles não eram
iguais. É a frase que fazia a divergência parecer impossível.
A guarda ganhou as duas propriedades novas, sabotadas uma a uma:
redigitar `INTERNAL_SECRET` num passo → vermelho; parar de publicar o
`.env.e2e` (que faria o caso anterior passar por ausência) → vermelho.
gov:verify: 0 erros de lint, 286 arquivos / 2933 testes.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HstH7nNmrTvCtZsasppeHj
0 commit comments