Skip to content

Smoke Helpers Device Configuracao

technical-documenter edited this page Aug 26, 2026 · 1 revision

Smoke helpers — device-configuracao (login ADMIN + PDV/DISPLAY/PRINT + switch app)

Documentação técnica da biblioteca reutilizável de smoke que prepara o tenant de teste no flowchart 1 (ON MANAGER → devices → troca de app) antes das jornadas filhas (POS / PPC / CHECKOUT / SHOP / DELIVERY).

Issue de origem: app-community#602 (pai: #601).

Catálogo: fluxo: device-configuracao · flowchartIds: [1] — ver Smoke Test Flows.

Papel no produto (APP_TYPE)

Visão O que este helper faz O que não faz
MANAGER / ADMIN Login ADMIN, abre lista de devices, garante DeviceConfig dos tipos obrigatórios Não implementa tela de produto; não altera permissões de usuário
POS Troca o app para POS (default após setup) Não cria pedido, não abre comanda, não cobra
PPC / CHECKOUT switchApp(page, 'PPC' | 'CHECKOUT') quando a jornada filha pedir CHECKOUT pode cair em POS se o seletor da UI não expuser CHECKOUT
SHOP / DELIVERY Base de device pronta para jornadas que dependem de PDV/DISPLAY/PRINT Não executa o fluxo de compra/entrega

Fronteiras de modo: MODOS_OPERACAO (quando presente no repo).

Onde vive o código

Peça Repositório / caminho
Orquestrador ui-testssrc/tests/helpers/adminDeviceFlow.js
Login ADMIN ui-testssrc/tests/helpers/adminLogin.js
DeviceConfig ui-testssrc/tests/helpers/deviceConfig.js + smokeDeviceTypes.js
Troca de app ui-testssrc/tests/helpers/switchApp.js
Credenciais (env only) ui-testssrc/tests/helpers/smokeCredentials.js
Manifesto + prints ui-testssrc/tests/helpers/smokeEvidence.js
Mock de runtime ADMIN ui-testssrc/tests/helpers/mockAdminRuntime.js
Smoke isolado ui-testssrc/tests/browser/admin/device-configuracao.spec.js
Unit ui-testssrc/tests/react/helpers/adminDeviceFlow.test.js
Reexport no pai (quando pinado) app-communitysrc/tests/browser/helpers/adminDeviceFlow.js

Wiki do submódulo: ui-tests · página espelho no app: ui-tests.

API pública (helpers)

runAdminDeviceSetup(page, options?)

Orquestra o fluxo completo:

  1. Prepara mock de runtime ADMIN (quando aplicável) e grava manifest.json.
  2. Login ADMIN (form Email / Senha / Entrar).
  3. Abre /devices-index?store=device_config e captura lista.
  4. Garante DeviceConfig dos tipos PDV, DISPLAY, PRINT (PRINTER é alias aceito de PRINT).
  5. Por padrão troca o app para POS (options.switchTo; use false para pular).

Retorno típico: { runtime, evidenceDir, manifest, login, switchedApp }.

switchApp(page, appType, options?)

Troca o tipo de app via controle Selecionar tipo de app. Aliases internos (ex.: PPC/PCP). Print opcional por options.stepName.

Credenciais

Somente via ambiente (nunca no repositório):

  • E-mail: SMOKE_ADMIN_EMAIL | ADMIN_EMAIL | SMOKE_LOGIN_EMAIL
  • Senha: SMOKE_ADMIN_PASSWORD | ADMIN_PASSWORD | SMOKE_LOGIN_PASSWORD
  • Live: SMOKE_LIVE=1 quando for execução contra tenant real

Sem secrets no env, o helper usa fallback de mock (admin@tenant.test / admin) apenas com API mockada — adequado para unit/CI offline.

Fonte de segredos de playground: pasta de credenciais do Drive do ecossistema (não versionar).

Manifesto e prints obrigatórios

Constantes em smokeEvidence.js:

  • DEVICE_CONFIG_FLOW_ID = device-configuracao
  • FLOWCHART_IDS = [1]
  • DEVICE_CONFIG_STEPS = login, lista-devices, pdv-salvo, display-salvo, print-salvo, app-pos-aberto

Cada passo gera PNG no evidenceDir (default: .playwright-smoke-results/device-configuracao ou PLAYWRIGHT_SMOKE_RESULTS_DIR / testInfo.outputDir).

Como as jornadas filhas devem importar

Preferir o reexport do pai quando existir:

const {runAdminDeviceSetup, switchApp} = require('../../../../../../../src/tests/browser/helpers/adminDeviceFlow');

Ou o módulo canônico em ui-tests:

const {runAdminDeviceSetup} = require('../../../../ui-tests/src/tests/helpers/adminDeviceFlow');

Não reimplementar login ADMIN nem configuração de device nas filhas de #601; importar estes helpers.

Smoke isolado

Arquivo: ui-tests/src/tests/browser/admin/device-configuracao.spec.js.

  • Teste 1: runAdminDeviceSetup → POS; anotações fluxo + flowchartIds.
  • Teste 2: setup sem switch + switchApp PPC e CHECKOUT.

Gate de evidência visual (QA): prints dos 6 passos + manifest.json no playground — ver Smoke Test Flows.

Diagrama do fluxo

flowchart TD
  A[Start smoke filha] --> B[runAdminDeviceSetup]
  B --> C[loginAsAdmin]
  C --> D[openDeviceList]
  D --> E[ensure PDV]
  E --> F[ensure DISPLAY]
  F --> G[ensure PRINT/PRINTER]
  G --> H{switchTo?}
  H -->|POS default| I[switchApp POS]
  H -->|PPC / CHECKOUT| J[switchApp solicitado]
  H -->|false| K[setup sem troca]
  I --> L[Jornada filha]
  J --> L
  K --> L
Loading

Fora de escopo

  • Executar o pedido / jornada de negócio em si (responsabilidade das filhas de #601).
  • Alterar regras de produto de DeviceConfig no backend.
  • Publicar credenciais ou tokens em issue, wiki ou Git.

Links relacionados

Destino URL
Catálogo de fluxos Smoke-Test-Flows
Skill canônica agents-mcp smoke-test-flows.md
ui-tests (repo) https://github.com/ControleOnline/ui-tests
ui-tests (wiki) https://github.com/ControleOnline/ui-tests/wiki
Issue #602 https://github.com/ControleOnline/app-community/issues/602
Pai flowchart 1 https://github.com/ControleOnline/app-community/issues/601

Clone this wiki locally