-
-
Notifications
You must be signed in to change notification settings - Fork 0
Smoke Helpers Device Configuracao
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.
| 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).
| Peça | Repositório / caminho |
|---|---|
| Orquestrador |
ui-tests → src/tests/helpers/adminDeviceFlow.js
|
| Login ADMIN |
ui-tests → src/tests/helpers/adminLogin.js
|
| DeviceConfig |
ui-tests → src/tests/helpers/deviceConfig.js + smokeDeviceTypes.js
|
| Troca de app |
ui-tests → src/tests/helpers/switchApp.js
|
| Credenciais (env only) |
ui-tests → src/tests/helpers/smokeCredentials.js
|
| Manifesto + prints |
ui-tests → src/tests/helpers/smokeEvidence.js
|
| Mock de runtime ADMIN |
ui-tests → src/tests/helpers/mockAdminRuntime.js
|
| Smoke isolado |
ui-tests → src/tests/browser/admin/device-configuracao.spec.js
|
| Unit |
ui-tests → src/tests/react/helpers/adminDeviceFlow.test.js
|
| Reexport no pai (quando pinado) |
app-community → src/tests/browser/helpers/adminDeviceFlow.js
|
Wiki do submódulo: ui-tests · página espelho no app: ui-tests.
Orquestra o fluxo completo:
- Prepara mock de runtime ADMIN (quando aplicável) e grava
manifest.json. - Login ADMIN (form Email / Senha / Entrar).
- Abre
/devices-index?store=device_confige captura lista. - Garante DeviceConfig dos tipos
PDV,DISPLAY,PRINT(PRINTERé alias aceito dePRINT). - Por padrão troca o app para POS (
options.switchTo; usefalsepara pular).
Retorno típico: { runtime, evidenceDir, manifest, login, switchedApp }.
Troca o tipo de app via controle Selecionar tipo de app. Aliases internos (ex.: PPC/PCP). Print opcional por options.stepName.
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=1quando 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).
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).
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.
Arquivo: ui-tests/src/tests/browser/admin/device-configuracao.spec.js.
- Teste 1:
runAdminDeviceSetup→ POS; anotaçõesfluxo+flowchartIds. - Teste 2: setup sem switch +
switchAppPPC e CHECKOUT.
Gate de evidência visual (QA): prints dos 6 passos + manifest.json no playground — ver Smoke Test Flows.
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
- 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.
| 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 |