Skip to content
This repository has been archived by the owner on Oct 14, 2024. It is now read-only.

Latest commit

 

History

History

one_consumer_one_provider

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Exemplo em Node

Exemplo da criação de um Pact entre:

  • 1 consumidor (Consumer)
  • 1 provedor (Provider)
  • Veja este mesmo cenário feito em Java.

Ferramentas

  • Node + npm
  • Express
  • Typescript
  • Jest
  • Pact
  • Pact Broker

Índice

Cenários

Este exemplo aborda um cenário comum no setor bancário. Nosso objetivo é obter o dado de saldo de determinado cliente. Para isto, vamos considerar que este dado será recuperado da seguinte forma:

1 - Com o identificador do cliente, solicitamos ao serviço de dominio do cliente (client-api) o valor do saldo em conta.
2 - Por sua vez, o client-api pergunta ao serviço de domínio da conta (account-api) qual o saldo contido na conta atrelada aquele cliente.
3 - Tendo a informação do saldo em conta, o client-api retorna a informação a quem a solicitou.

A imagem abaixo representa esse fluxo.

new pact contract

De forma resumida, temos os seguintes serviços:

  • account-api: mantém e gerencia informações relacionadas a contas bancárias.
  • client-api: mantém e gerencia informações sobre clientes/correntistas.

Como executar

  1. Garanta que você tenha uma instância do Pact Broker rodando localmente. Vide seção configuração do Pact Broker caso tenha dúvida.

  2. Com o Broker funcionando, podemos iniciar os testes. Primeiro, precisamos instalar as dependencias da API. Para isto, va até o diretório client-api e execute o seguinte comando:

npm install

Em seguida, precisamos gerar o contrato do PACT para a nossa API consumidora e o publicamos no Broker.
No mesmo diretório, execute os seguintes comandos:

npm run test
npm run pact:publish

Acesse o Pact Broker (http://localhost:9292) em seu navegador. Você deverá ver o contrato publicado.

new pact contract

Caso tenha interesse, o contrato gerado pode ser conferido no diretório client-api/pacts.

  1. Para validar o contrato gerado, vamos até o diretório da nossa API provedora (provider) account-api. Novamente, precisamos instalar as dependencias da API. Para isto, execute o seguinte comando:
npm install

Para testarmos o contrato com a API consumidora, precisamos apenas rodar o teste da API. Para isto, execute:

npm run test

Este teste irá verificar no Broker os contratos disponiveis para validação, baixá-los e testá-los de acordo com a API. Ao final, podemos conferir o resultado do teste que é publicado no Broker.

new pact contract