Example Consumer
Source Code
https://github.com/pactflow/example-consumer
: https://test.pactflow.io/pacts/provider/pactflow-example-provider/consumer/pactflow-example-consumer/latest (latest pact)
This is an example of a Node consumer using Pact to create a consumer driven contract and sharing it via API Hub for Contract Testing.
It is using a public tenant on API Hub for Contract Testing, which you can access here using the credentials dXfltyFMgNOFZAxr8io9wJ37iUpY42M
/O5AIZWxelWbLvqMd8PkAVycBJh2Psyg1
. The latest version of the Example Consumer/Example Provider pact is published here.
The project uses a Makefile to simulate a very simple build pipeline with two stages - test and deploy.
Test
Run tests (including the pact tests that generate the contract)
Publish pacts, associating the consumer version with the name of the current branch
Check if we are safe to deploy to prod (ie. has the pact content been successfully verified)
Deploy (only from master)
Deploy app (just pretend for the purposes of this example!)
Record the deployment in the Pact Broker
Usage
See the API Hub for Contract Testing CI/CD Workshop for further details.
Running the application
Start up the provider (or another compatible provider) API by running npm run start
.
Open a separate terminal for the consumer.
Before starting the consumer, create a .env
file in the root of the project and set the URL to point to your running provider:
REACT_APP_API_BASE_URL=http://localhost:8080
Then run:
npm run start
Pre-requisites
Software:
Tools listed at: Prerequisites
A pactflow.io account with a valid API Token
Environment variables
To be able to run some of the commands locally, you will need to export the following environment variables into your shell:
PACT_BROKER_TOKEN
: a valid API Token for API Hub for Contract TestingPACT_BROKER_BASE_URL
: a fully qualified domain name with protocol to your pact broker e.g., https://testdemo.pactflow.io
Usage
Pact use case
make test
- run the pact test locallymake fake_ci
- run the CI process locally