refactor(console): de-mock Onboarding/Agentes + migra onboarding.spec (limpeza de mocks 5.6b) - #111
Merged
Merged
Conversation
… (limpeza 5.6b)
Segunda metade da 5.6 (split aprovado) e ÚLTIMA fatia de telas — todas as telas do
console agora chamam o apiClient real. Remove as branches de mock de PRODUÇÃO do
Onboarding e dos Agentes e migra onboarding.spec. Diff 100% em docs/design/pages/,
zero backend. Resta só a 5.7 (core+shell+landing + data.js + flags + guard).
Telas de-mockadas: screen_onboarding, screen_agents. De-mock MECÂNICO — ZERO
vazamentos CT.* (todos mock-gated). No onboarding, o wrapper {!mock && …Re-detectar}
some (o botão passa a sempre renderizar — load() agora é real).
Decisão 2a/2b (título "Agentes") — resolvida como (b): o fixture serve /v1/agents=[]
→ agents=[] é truthy, passa o EmptyState e renderiza <h1>Agentes</h1> pelo caminho
real; o deep-link #agents não é sequestrado (os effects do app.jsx dão early-return
no hash não-vazio). (a) [page-head sobrevivendo a ERRO] NÃO entrou: exigiria hoistar
o page-head + guardar o page-sub (depende de agents) — não é wrapper pequeno e é
desnecessário p/ o verde. NOTA registrada p/ um passe de UX futuro.
Decisão MOCK_ONBOARDING — acoplamento parcial (como planejado): a flag é lida no
app.jsx (core, auto-open L218-219 + desk-landing L235-236), não na tela. Os testes de
boot-redirect (T1/T2) mantêm USE_MOCK_DATA + MOCK_ONBOARDING='pending' (dispara o
redirect determinístico no app.jsx, sem corrida com a landing da Mesa) CONVIVENDO com
o fixture (serve o cenário pending + o PATCH stateful). A leitura da flag sai na 5.7
com o resto do core. Deep-link/menu/403 já rodam em fixture puro.
Fixture (e2e/fixtures/):
- ONBOARDING baseline segue completed (protege o boot dos outros specs); cenário
onboardingPending() (2 auto, 1 pulado, 2 pendentes → "3/5"; summary "Binance
testnet"; os 2 pendentes = review + start_dryrun) servido por-teste via
scenario.onboarding='pending'.
- Handler STATEFUL de onboarding em installMockApi (segundo write real do fixture,
após operated-pairs): PATCH marca step (skip→skipped / complete→done_manual) e
dismiss, recomputa completed; GET reflete. Seed por-instância (reset entre testes).
Specs migrados: onboarding (6) → installMockApi (T1/T2/T4 com a flag legada convivendo).
Auditoria de mocks: 2 telas sem USE_MOCK_DATA/CT.* (grep limpo). Com isso, TODAS as
telas (screen_*.jsx) estão de-mockadas. Resta o core (5.7).
Validação: onboarding 6/6 verde (boot-redirect + PATCH stateful + título #agents +
403s); suíte completa 75 verdes exit 0 (retries=1); node build.mjs OK.
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.6b (Onboarding · Agentes)
Segunda metade da 5.6 e última fatia de telas — todas as
screen_*.jsxdo console agora chamam o apiClient real. Remove as branches de mock de produção do Onboarding e dos Agentes e migraonboarding.spec. Diff 100% emdocs/design/pages/, zero backend. Resta só a 5.7 (core+shell+landing +data.js+ flags + guard).Telas de-mockadas
screen_onboarding·screen_agents. De-mock mecânico — ZERO vazamentosCT.*(todos mock-gated). No onboarding, o wrapper{!mock && …Re-detectar}some (o botão passa a sempre renderizar —load()agora é real).Decisão 2a/2b (título "Agentes") — resolvida como (b)
O fixture serve
/v1/agents=[]→agents=[]é truthy, passa o EmptyState e renderiza<h1>Agentes</h1>pelo caminho real; o deep-link#agentsnão é sequestrado (os effects doapp.jsxdão early-return no hash não-vazio). (a) [page-head sobrevivendo a erro] não entrou: exigiria hoistar o page-head + guardar o page-sub (depende deagents) — não é wrapper pequeno e é desnecessário p/ o verde. Nota registrada p/ um passe de UX futuro.Decisão
MOCK_ONBOARDING— acoplamento parcial (como planejado)A flag é lida no
app.jsx(core: auto-open + desk-landing), não na tela. Os testes de boot-redirect (T1/T2) mantêmUSE_MOCK_DATA + MOCK_ONBOARDING='pending'(dispara o redirect determinístico noapp.jsx, sem corrida com a landing da Mesa) convivendo com o fixture (serve o cenário pending + o PATCH stateful). A leitura da flag sai na 5.7 com o resto do core. Deep-link/menu/403 já rodam em fixture puro.Fixture (
e2e/fixtures/)ONBOARDINGbaseline segue completed (protege o boot dos outros specs); cenárioonboardingPending()(2 auto, 1 pulado, 2 pendentes → "3/5"; summary "Binance testnet"; os 2 pendentes = review + start_dryrun) servido por-teste viascenario.onboarding='pending'.installMockApi(segundo write real do fixture, após operated-pairs): PATCH marca step (skip→skipped / complete→done_manual) e dismiss, recomputacompleted; GET reflete. Seed por-instância (reset entre testes).Specs migrados
onboarding(6) →installMockApi(T1/T2/T4 com a flag legada convivendo).Auditoria de mocks
2 telas sem
USE_MOCK_DATA/CT.*(grep limpo). Com isso, TODAS as telas (screen_*.jsx) estão de-mockadas. Resta o core (5.7).Validação local
--retries=1).node build.mjsOK.🤖 Generated with Claude Code
Generated by Claude Code