Cenários
Cenários nomeados: provisionam as respostas passivas, disparam o webhook order-notice com um
traceId e aferem o fan-out (chamadas esperadas × recebidas) correlacionado por esse trace.
Rodar é feito pela Api (POST /_sim/scenarios/{id}/run); o resultado é lido do arquivo.
Legenda:
OUT ▲ Simulation → HAASS (ação)
IN ▼ HAASS → Simulation (recebida)
·
OBRIGATÓRIA decide pass/fail
CATÁLOGO verificação (soft-delete)
NÃO ESPERADA fora do previsto
Grupo
Conector (por categoria — multi, AND)
Filtro (AND): Vtex & CrmBonus
Canal de venda
ERP
Bonus
Integrador
Meio de pagamento
Outros
Vtex = canal-fonte de todo cenário. Integrador = conecta o
HAASS ao meio final (CrmBonus → iFood; SystemHope → Shopify). Clientes sem integrador
integram direto com o provider. Ver
specs/Integration/023.
CANAL CrmBonus (2921) — captura por rota própria sem execução
canal-crmbonus-captura
· orderId: 00-{{run}}-01
· esperadas: 0
org: StatusFlow cluster3-realista
› StatusFlow BU cluster3-bu (2920)
› StatusFlow Store realista-1erp (2921)
ERPs: 1
· canais da loja: SITE, MKPlace
CrmBonus → iFood (integrador)
Vtex
Detalhes — descrição, previsto × recebido, timeline
Pedido que NASCE no CrmBonus, não na VTEX: POST /api/v2.0/CrmBonusOrder/Save. Escolhe a org pelo `sellerId` (= Store.SystemCode), então roda na loja realista 2921 — o ECId gerado carrega os dois: IFOOD-2921-<data>-CRMB-<run>-01. SalesChannelId é IFOOD, chumbado no controller. PROVA A ENTRADA pelo canal, não o fan-out: a descida ao Updi acontece (medido no log), mas a captura entra por fila e o traceId do cenário não atravessa esse salto, então a correlação não a alcança — afirmá-la seria falhar por instrumentação. Gap registrado.
Previsto × recebido
sem execução — só o previsto
OUT ▲ OUTBOUND — ações (Simulation → HAASS)
Nenhuma ação outbound planejada.
IN ▼ IN — Obrigatórias (decidem pass/fail)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
OBRIGATÓRIA
CrmBonus estoque — 0×: sem CrmBonusIntegrator na loja
endpoint=crmbonus-stock-update |
0..0 | — |
| · |
OBRIGATÓRIA
Vtex order-by-id — 0×: o pedido não veio da VTEX
endpoint=vtex-order-by-id |
0..0 | — |
CANAL MKPlace (2921) — captura por rota própria sem execução
canal-mkplace-captura
· orderId: 00-{{run}}-01
· esperadas: 0
org: StatusFlow cluster3-realista
› StatusFlow BU cluster3-bu (2920)
› StatusFlow Store realista-1erp (2921)
ERPs: 1
· canais da loja: SITE, MKPlace
CrmBonus → iFood (integrador)
Vtex
Detalhes — descrição, previsto × recebido, timeline
Pedido que NASCE no MKPlace: POST /api/v2.0/MKPlaceWebhook/Order. A rota só exige `_id` e resolve a org de configuração GLOBAL (MKPlaceWebhookBusinessUnitId/StoreId/SellerSystemCode), apontada para a 2921 pelo seed — não há como escolher a loja por cenário. Prova a ENTRADA pelo canal; o que o pedido produz depois depende do inbox, e por isso as expectativas aqui são de ausência do que NÃO deve acontecer.
Previsto × recebido
sem execução — só o previsto
OUT ▲ OUTBOUND — ações (Simulation → HAASS)
Nenhuma ação outbound planejada.
IN ▼ IN — Obrigatórias (decidem pass/fail)
| Chamada | Previsto | Veio | |
|---|---|---|---|
| · |
OBRIGATÓRIA
Vtex order-by-id — 0×: o pedido não veio da VTEX
endpoint=vtex-order-by-id |
0..0 | — |
| · |
OBRIGATÓRIA
CrmBonus estoque — 0×: canal errado
endpoint=crmbonus-stock-update |
0..0 | — |
JSON