/pact-provider-poc

Dummy provider API for PACT poc

Primary LanguageJavaScript

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