refactor(console): corte final — remove todo o mock do bundle + guard anti-regressão (limpeza de mocks 5.7) - #112
Merged
Conversation
… (limpeza 5.7) Última fatia do programa de limpeza de mocks (strangler). Remove o último encanamento de mock do CORE, deleta o data.js (fonte do mock global) e planta um guard anti-regressão. A partir daqui NENHUM branch de mock é alcançável no bundle de produção — o mock vive só em e2e/fixtures. Diff 100% em docs/design/pages/. Fato estrutural: data.js definia SÓ window.CT (mock); todos os stores reais (CT_API, CT_PAIR, CT_DESK_VIEW, CT_GROUPS, CT_PREFS, CT_AUTH) vivem em apiClient.js. Então o data.js foi DELETADO inteiro (diretriz "deletar, não desidratar"). Core de-mockado (leftovers das fatias anteriores): - app.jsx: useState(CT.alerts/pendingOrders) → []/0; branch mock do auto-open de onboarding e o ternário onboardingWins do desk-landing removidos. O caminho real é DETERMINÍSTICO por guardas assimétricas: as duas ordens de resolução dos fetches terminam em #onboarding quando o guia está incompleto (a Mesa relê o hash e cede; o auto-open sobrescreve). Sem MOCK_ONBOARDING. - shell.jsx: const mock + fallbacks ?? CT.symbol removidos (price = ticker.last ?? 65200). - screen_overview / screen_desk: branches mock vivos + o gerador _mockDesk() removidos. - components.jsx: braços mock de loadPairs/loadPairsRich removidos. - apiClient.js: branch mock do CT_AUTH.load + MOCK_MATRIX + seed MOCK_PREFS + comentários stale removidos. Auth agora SEMPRE via fromMe(GET /v1/auth/me). Hook de teste do boundary: MOCK_THROW_SCREEN → window.__E2E_THROW_SCREEN (sem prefixo MOCK_/CT. → escapa o guard). É fault-injection síncrona (o error-boundary precisa de throw em render; fixture não substitui), inerte na produção, injetada só via addInitScript do e2e — mesmo estatuto dos mocks de e2e. Guard anti-regressão (build.mjs → roda local antes do push E no CI console-build): varre os fontes de produção (e2e/ fica fora de readdir(here)) e falha se achar USE_MOCK_DATA | MOCK_[A-Z_]+ | CT.<campo> | data.js, apontando a diretriz. Já validado: pegou 4 comentários stale (reescritos) antes de passar. Fixture (e2e/fixtures/): +deskSummaryN(n) (hint de 14 pares); +opções operados (single-pair do console) e desk (contagem de linhas); desk summary agora STATEFUL (o PATCH de par sincroniza a linha da Mesa → N9 resume reflete no reload). Specs migrados a fixture PURO (últimos 6 no flag): console, desk, system (boundary usa __E2E_THROW_SCREEN), onboarding (T1/T2/T4 sem flag — redirect 100% do caminho real), pairs_path. Nenhum window.USE_MOCK_DATA/MOCK_* runtime resta em spec algum. Aceite final da faixa: build sem nenhum branch de mock alcançável (guard ativo); suíte completa 75 verdes só com o fixture (retries=1); node build.mjs OK. Encerra o programa de limpeza de mocks: 5.1 prototype → 5.2 substrate+auth → 5.3/5.3b Risco/Obs/Config/Mercado/Diário/Backtest → 5.4 HITL/Ordens/Users → 5.5 Notif/Conexões → 5.6a/5.6b Conta/Segurança/Auditoria/Onboarding/Agentes → 5.7 core+data.js+guard. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UZ3vLNTHKekjQVtjFVRi5D
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Limpeza de mocks — Fatia 5.7 (corte final do core + guard) 🏁
Última fatia do programa. Remove o último encanamento de mock do CORE, deleta o
data.js(fonte do mock global) e planta um guard anti-regressão. A partir daqui nenhum branch de mock é alcançável no bundle de produção — o mock vive só eme2e/fixtures. Diff 100% emdocs/design/pages/; net −577 linhas.Fato estrutural
data.jsdefinia sówindow.CT(mock); todos os stores reais (CT_API,CT_PAIR,CT_DESK_VIEW,CT_GROUPS,CT_PREFS,CT_AUTH) vivem emapiClient.js. Então odata.jsfoi deletado inteiro (diretriz "deletar, não desidratar").Core de-mockado
app.jsx:useState(CT.alerts/pendingOrders)→[]/0; branch mock do auto-open de onboarding + o ternárioonboardingWinsdo desk-landing removidos. O caminho real é determinístico por guardas assimétricas: as duas ordens de resolução dos fetches terminam em#onboardingquando o guia está incompleto (a Mesa relê o hash e cede; o auto-open sobrescreve). SemMOCK_ONBOARDING.shell.jsx:const mock+ fallbacks?? CT.symbolremovidos.screen_overview/screen_desk: branches mock vivos + o gerador_mockDesk()removidos.components.jsx: braços mock deloadPairs/loadPairsRichremovidos.apiClient.js: branch mock doCT_AUTH.load+MOCK_MATRIX+ seedMOCK_PREFS+ comentários stale removidos. Auth sempre viafromMe(GET /v1/auth/me).Hook de teste do boundary
MOCK_THROW_SCREEN→window.__E2E_THROW_SCREEN(sem prefixoMOCK_/CT.→ escapa o guard). É fault-injection síncrona (o error-boundary precisa de throw em render; fixture não substitui), inerte na produção, injetada só viaaddInitScriptdo e2e — mesmo estatuto dos mocks de e2e.Guard anti-regressão (
build.mjs→ roda local antes do push E no CIconsole-build)Varre os fontes de produção (
e2e/fica fora dereaddir(here)) e falha se acharUSE_MOCK_DATA|MOCK_[A-Z_]+|CT.<campo>|data.js, apontando a diretriz. Já validado: pegou 4 comentários stale (reescritos) antes de passar.Fixture (
e2e/fixtures/)+deskSummaryN(n)(hint de 14 pares);+opçõesoperados(single-pair do console) edesk(contagem de linhas); desk summary agora stateful (o PATCH de par sincroniza a linha da Mesa → o N9 resume reflete no reload).Specs migrados a fixture PURO (últimos 6 no flag)
console·desk·system(boundary usa__E2E_THROW_SCREEN) ·onboarding(T1/T2/T4 sem flag — redirect 100% do caminho real) ·pairs_path. Nenhumwindow.USE_MOCK_DATA/MOCK_*runtime resta em spec algum.Aceite final da faixa
mock-guard OK: 27 fontes).--retries=1).node build.mjsOK.Encerra o programa de limpeza de mocks
5.1 prototype → 5.2 substrate+auth → 5.3/5.3b (Risco/Obs/Config/Mercado/Diário/Backtest) → 5.4 (HITL/Ordens/Users) → 5.5 (Notif/Conexões) → 5.6a/5.6b (Conta/Segurança/Auditoria/Onboarding/Agentes) → 5.7 (core + delete data.js + guard).
🤖 Generated with Claude Code
Generated by Claude Code