Skip to content

JosephBJoyce/pact-provider-poc

 
 

Repository files navigation

Contract testing POC - Provider

1. Setup

pnpm install

2. Start Provider

pnpm start

3. Run contract tests using PactFlow.io broker

  • setup environment vars

    export PACT_BROKER_BASE_URL=https://domain.pactflow.io
    export PACT_BROKER_TOKEN=******
  • verify published contract from pactflow.io against provider (start provider first)

    pnpm start
    pnpm pact:verify
$hash=git rev-parse --short head
$branch=git rev-parse --abbrev-ref head
docker run `
  --rm `
  -w /opt/pact `
  -v ${PWD}:/opt/pact `
  -e PACT_BROKER_BASE_URL `
  -e PACT_BROKER_TOKEN `
  pactfoundation/pact-cli:latest verify `
  --provider "pact-provider-poc" `
  --provider-version-branch $branch `
  --provider-app-version $hash `
  --provider-base-url http://host.docker.internal:1113 `
  --consumer-version-selector '{\"matchingBranch\": true, \"mainBranch\": true}' `
  --enable-pending `
  --fail-if-no-pacts-found `
  --publish-verification-results
$hash=git rev-parse --short head
$branch=git rev-parse --abbrev-ref head
docker run --rm `
  -w /opt/pact `
  -v ${PWD}:/opt/pact `
  -e PACT_BROKER_BASE_URL  `
  -e PACT_BROKER_TOKEN `
  pactfoundation/pact-cli:latest pactflow publish-provider-contract api-docs.yaml `
  --provider "pact-provider-poc" `
  --provider-app-version $hash `
  --branch $branch `
  --content-type application/yaml
  # to also verify contract uncomment next lines
  #--verifier postman `
  #--verification-exit-code=0
  #--verification-results postman-verification-summary.json `
  #--verification-results-content-type text/plain
  • Can I deploy
$hash=git rev-parse --short head
$branch=git rev-parse --abbrev-ref head
docker run --rm `
  -w /opt/pact `
  -v ${PWD}:/opt/pact `
  -e PACT_BROKER_BASE_URL `
  -e PACT_BROKER_TOKEN `
  pactfoundation/pact-cli:latest pact-broker can-i-deploy `
  --pacticipant pact-provider-poc `
  --version $hash `
  --to-environment preprod
  • Record deployment/release
$hash=git rev-parse --short head
docker run --rm `
  -w /opt/pact `
  -v ${PWD}:/opt/pact `
  -e PACT_BROKER_BASE_URL `
  -e PACT_BROKER_TOKEN `
  pactfoundation/pact-cli:latest pact-broker record-deployment `
  --pacticipant pact-provider-poc `
  --version $hash `
  --environment test

About

Dummy provider API for PACT poc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 86.4%
  • Shell 8.6%
  • Dockerfile 5.0%