Skip to content

refactor(console): de-mock Onboarding/Agentes + migra onboarding.spec (limpeza de mocks 5.6b) - #111

Merged
danzeroum merged 1 commit into
masterfrom
claude/criptotrade-onboarding-06pd5p
Jul 20, 2026
Merged

refactor(console): de-mock Onboarding/Agentes + migra onboarding.spec (limpeza de mocks 5.6b)#111
danzeroum merged 1 commit into
masterfrom
claude/criptotrade-onboarding-06pd5p

Conversation

@danzeroum

Copy link
Copy Markdown
Owner

Limpeza de mocks — Fatia 5.6b (Onboarding · Agentes)

Segunda metade da 5.6 e última fatia de telas — todas as screen_*.jsx 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ânicoZERO 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 + desk-landing), 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 local

  • 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.

🤖 Generated with Claude Code


Generated by Claude Code

… (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
@danzeroum
danzeroum merged commit dff61cb into master Jul 20, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants