refactor(console): de-mock Conta/Segurança/Auditoria + migra specs (limpeza de mocks 5.6a) - #110
Merged
Merged
Conversation
…impeza de mocks 5.6a)
Sétima fatia (strangler), primeira metade da 5.6. Remove as branches de mock de
PRODUÇÃO de 3 telas self-service/audit e migra account/security/audit specs para o
fixture. Diff 100% em docs/design/pages/, zero backend. (5.6b — Onboarding/Agentes,
com o acoplamento de core — vem a seguir.)
Telas de-mockadas: screen_account, screen_security, screen_audit.
De-mock MECÂNICO — ZERO vazamentos CT.* (todos mock-gated). CT_AUTH/CT_PREFS são
stores reais (preservados; ex.: totpOn de CT_AUTH, CT_PREFS.apply no save de prefs).
Gating preservado (route-level, fora das telas): account/security = USER_ONLY_ROUTES
(demo OCULTO); audit = ROUTE_PERMS='view_audit' (demo/visualizador OCULTO). Os
if(mock){addToast('Modo demo…')} eram short-circuit de WRITE do mock, não gating —
deletam limpo.
Fixture (e2e/fixtures/):
- ACCOUNT_PROFILE (email demo@… p/ o campo disabled), PREFERENCES (number_locale
'auto' → preview en-US), PATCH /v1/account/preferences canned.
- SECURITY_SESSIONS (2; s1 current:true → "Atual"; UAs → "Chrome · Linux"/"Safari · iOS"),
SECURITY_LOGINS (3, 1 success:false; envelope {data:[…]} p/ getLoginHistory unwrap:false).
- AUDIT_EVENTS (8; id 7 config_changed com before/after max_daily_loss_pct 5→4).
GET /v1/audit filtra por action (recompute do total via fallback env.data.length,
já que unwrap:false); GET /v1/audit/{id} = detalhe (pattern). Handler query-aware,
não mutação stateful.
Recompute de aceite (premissa mock → fixture, declarado): account.spec afirmava o
header ".header $67.667" (do velho CT.symbol.price ~67667); pós-fixture o preço vem
de ticker() (BTC 64810) → atualizado p/ "$64.810". Mesmo padrão das mudanças de
contagem de NAV das fatias anteriores.
Specs migrados via installMockApi (cenários authMode/role): account (5), security (4),
audit (5).
Acoplamento: nenhum spec não-migrado navega para #account/#security/#audit afirmando
conteúdo; console conta só labels de nav (perm-gated, preservado).
Auditoria de mocks: 3 telas sem USE_MOCK_DATA/CT.* (grep limpo). Restam: Onboarding+
Agentes (5.6b) e o core (5.7).
Validação: 14 specs migrados verdes (account 5 + security 4 + audit 5); suíte completa
74 verdes exit 0 (retries=1; o teste demo/403 do audit apareceu flaky sob carga
paralela — 3/3 isolado, corrida de boot conhecida, não regressão); 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.6a (Conta · Segurança · Auditoria)
Primeira metade da 5.6 (split aprovado). Remove as branches de mock de produção de 3 telas self-service/audit e migra
account/security/auditspecs para o fixture. Diff 100% emdocs/design/pages/, zero backend. 5.6b (Onboarding/Agentes, com o acoplamento de core) vem a seguir.Telas de-mockadas
screen_account·screen_security·screen_audit. De-mock mecânico — ZERO vazamentosCT.*(todos mock-gated).CT_AUTH/CT_PREFSsão stores reais (preservados:totpOndeCT_AUTH,CT_PREFS.applyno save de prefs).Gating preservado (route-level, fora das telas)
account/security =
USER_ONLY_ROUTES(demo oculto); audit =ROUTE_PERMS='view_audit'(demo/visualizador oculto). Osif(mock){addToast('Modo demo…')}eram short-circuit de write do mock, não gating — deletam limpo.Fixture (
e2e/fixtures/)ACCOUNT_PROFILE(emaildemo@…p/ o campo disabled),PREFERENCES(number_locale:'auto'→ preview en-US),PATCH /v1/account/preferencescanned.SECURITY_SESSIONS(2; s1current:true→ "Atual"; UAs → "Chrome · Linux"/"Safari · iOS"),SECURITY_LOGINS(3, 1success:false; envelope{data:[…]}p/getLoginHistoryunwrap:false).AUDIT_EVENTS(8; id 7config_changedcom before/aftermax_daily_loss_pct 5→4).GET /v1/auditfiltra por action (total via fallbackenv.data.length, já que unwrap:false);GET /v1/audit/{id}= detalhe (pattern). Handler query-aware, não mutação stateful.Recompute de aceite (premissa mock → fixture, declarado)
account.specafirmava o header.header "$67.667"(do velhoCT.symbol.price~67667); pós-fixture o preço vem deticker()(BTC 64810) → atualizado p/ "$64.810". Mesmo padrão das mudanças de contagem de NAV das fatias anteriores.Specs migrados
account(5) ·security(4) ·audit(5) →installMockApi(cenáriosauthMode/role).Acoplamento: nenhum
Nenhum spec não-migrado navega para
#account/#security/#auditafirmando conteúdo;consoleconta só labels de nav (perm-gated, preservado).Validação local
--retries=1). O teste demo/403 do audit apareceu flaky sob carga paralela — 3/3 isolado, corrida de boot conhecida do demo, não regressão.node build.mjsOK.🤖 Generated with Claude Code
Generated by Claude Code