-
-
Notifications
You must be signed in to change notification settings - Fork 1
Fluxos de Smoke
ControleOnline Developer edited this page Aug 25, 2026
·
4 revisions
Documentação canônica dos fluxos de smoke alinhados aos fluxos de negócio do ControleOnline.
Os smoke tests validam ponta a ponta (API + contratos HTTP) os caminhos críticos antes de RC/staging. Evidências esperadas: status HTTP, payload mínimo e ausência de 5xx nos caminhos documentados.
| Fonte | Uso |
|---|---|
Bundle smoke-tests-playground
|
GET /tests, GET /tests/index.json, GET /tests/api — índice agregado de suites |
| Artifacts |
GET /tests/artifacts/{suiteId}/{arquivo} — reports, prints |
| Runner |
POST /tests/run (quando habilitado no ambiente) |
| Coleção Postman |
postman/collections/Controle Online.json no repo |
Playground: pacote controleonline/smoke-tests-playground (submódulo modules/controleonline/smoke-tests-playground).
| Passo | Endpoint / ação | Evidência esperada |
|---|---|---|
| Login (token) |
POST autenticação / oauth (coleção LOGIN → Token) |
200 + token JWT/access válido |
| Me / perfil |
GET recurso “My” autenticado |
200 + people/user do tenant |
| Create account | fluxo create-account (people) |
201/200 + pessoa criada; visitor/marketing link quando aplicável |
| Password recovery | request + complete recovery |
200 / sem vazamento de existência de conta além do contrato |
| Passo | Endpoint / ação | Evidência esperada |
|---|---|---|
| Listagem people |
GET /people (filtros tenant) |
200 + hydra collection; soft-deleted ausentes por default |
| Criar PJ / vínculo | create company + people_links |
201; auto-link pessoa autenticada quando fluxo My Companies |
| Endereços / CEP | lookup postal code + address |
200 CEP; coords quando disponíveis; 404/400 estáveis |
| Passo | Endpoint / ação | Evidência esperada |
|---|---|---|
| Categorias shop | GET /shop/categories |
200 + árvore/lista |
| Produtos |
GET /products, GET /products/{id}
|
200; summary quando aplicável |
| Inventário / labels | inventory, labels/print, SKU |
200 ou job aceito; sem 5xx |
| Passo | Endpoint / ação | Evidência esperada |
|---|---|---|
| Criar / listar orders | POST/GET /orders |
201/200; tenant isolado |
| Itens order_products | add / replace products |
200/201; total coerente |
| Fulfillment / ajustes | order_product_fulfillments, adjustments |
200 em endpoints auditados; client role denied onde previsto |
| Cancelamento | cancel order (status in-place) | status atualizado; sem 5xx |
| Impressões | print / conference-print |
200 ou PDF/stream aceito |
| Passo | Endpoint / ação | Evidência esperada |
|---|---|---|
| Invoices / order_invoices | listagem e detalhe |
200; overdue mark worker não quebra request path |
| Paylist anônimo | página/rota paylist por CPF/CNPJ |
200 público; sem dados de outros tenants |
| Notificação overdue | comando notify overdue | job ok; canais e-mail/WhatsApp conforme config |
| Passo | Endpoint / ação | Evidência esperada |
|---|---|---|
| Configs |
GET/POST /configs, menu-config |
200/201 no tenant |
| Notifications | listagem | 200 |
| Reports | order hours, attendance |
200 com payload agregado |
| Passo | Endpoint / ação | Evidência esperada |
|---|---|---|
| Sessions WhatsApp | list/create connection |
200/201 conforme papel |
| Marketing events |
POST /marketing_events (PUBLIC_ACCESS create) |
201 visitante; read ROLE_HUMAN |
-
AuthZ: rotas autenticadas rejeitam anônimo (
401/403); rotas públicas documentadas não exigem token. - Multi-tenancy: resposta nunca vaza entidades de outro company/people.
-
Estabilidade: caminhos da tabela acima não retornam
5xxem smoke verde. - Contrato: JSON-LD/Hydra ou payload acordado na coleção Postman; campos obrigatórios presentes.
- Idempotência operacional: workers (mark overdue, notify) podem ser reexecutados sem corromper dados.
- Ponte da wiki no repo:
docs/wiki.md→ somentehttps://github.com/ControleOnline/api-community/wiki -
Não usar submódulo
docs/wikinoapi-community - Validação automatizada:
scripts/validate-wiki-structure.cjsetests/WikiStructureTest.php
- github-flow
- smoke-tests-playground
- Coleção Postman no repo:
postman/collections/Controle Online.json