15.1.0 • Published 7 months ago

@you54f/pact-core v15.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago
:information_source: Usage notice
This is a core library, designed for use in the bowels of another package. Unless you are wanting to develop tools for the pact ecosystem, you almost certainly want to install @pact-foundation/pact instead

Build and test Known Vulnerabilities GitHub release npm license slack

Npm package license Npm package version Minimum node.js version

Npm package total downloads

Npm package yearly downloads Npm package monthly downloads Npm package daily downloads

Npm package dependents

Maintenance

Build and test Publish and release

Pact-JS Core

A wrapper for the Pact Reference Core Library.

Installation

npm install @pact-foundation/pact-core --save-dev

Do Not Track

In order to get better statistics as to who is using Pact, we have an anonymous tracking event that triggers when Pact installs for the first time. To respect your privacy, anyone can turn it off by simply adding a 'do not track' flag within their package.json file:

{
 "name": "some-project",
 ...
 "config": {
  "pact_do_not_track": true
 },
 ...
}

Which Library/Package should I use?

TL;DR - you almost always want Pact JS.

PurposeLibraryComments
Synchronous / HTTP APIsPact JS
Asynchronous APIsPact JS
Node.jsPact JS
Browser testingPact WebYou probably still want Pact JS. See Using Pact in non-Node environments *
Isomorphic testingPact WebYou probably still want Pact JS. See Using Pact in non-Node environments *
Publishing to Pact BrokerPact CLI

* The "I need to run it in the browser" question comes up occasionally. The question is this - for your JS code to be able to make a call to another API, is this dependent on browser-specific code? In most cases, people use tools like React/Angular which have libraries that work on the server and client side, in which case, these tests don't need to run in a browser and could instead be executed in a Node.js environment.

Documentation

Set Log Level

var pact = require("@pact-foundation/pact-core");
pact.logLevel("debug");

Provider Verification

Read more about Verify Pacts.

var pact = require('@pact-foundation/pact-core');

pact.verifyPacts({
 ...
});

Options:

ParameterRequired?TypeDescription
providerBaseUrltruestringRunning API provider host endpoint.
pactBrokerUrlfalsestringBase URL of the Pact Broker from which to retrieve the pacts. Required if pactUrls not given.
providerfalsestringName of the provider if fetching from a Broker
consumerVersionSelectorsfalseConsumerVersionSelector|arrayUse Selectors to is a way we specify which pacticipants and versions we want to use when configuring verifications.
consumerVersionTagsfalsestring|arrayRetrieve the latest pacts with given tag(s)
providerVersionTagsfalsestring|arrayTag(s) to apply to the provider application
includeWipPactsSincefalsestringIncludes pact marked as WIP since this date. String in the format %Y-%m-%d or %Y-%m-%dT%H:%M:%S.000%:z
pactUrlsfalsearrayArray of local pact file paths or HTTP-based URLs. Required if not using a Pact Broker.
providerStatesSetupUrlfalsestringURL to send PUT requests to setup a given provider state
pactBrokerUsernamefalsestringUsername for Pact Broker basic authentication
pactBrokerPasswordfalsestringPassword for Pact Broker basic authentication
pactBrokerTokenfalsestringBearer token for Pact Broker authentication
publishVerificationResultfalsebooleanPublish verification result to Broker (NOTE: you should only enable this during CI builds)
providerVersionfalsestringProvider version, required to publish verification result to Broker. Optional otherwise.
enablePendingfalsebooleanEnable the pending pacts feature.
timeoutfalsenumberThe duration in ms we should wait to confirm verification process was successful. Defaults to 30000.
logLevelfalseLogLevel (string)Log level. One of "TRACE", "DEBUG", "ERROR", "WARN", "INFO", can be set by LOG_LEVEL env var

The consumer version selector looks like this:

ConsumerVersionSelector {
  tag?: string;
  latest?: boolean;
  consumer?: string;
  deployedOrReleased?: boolean;
  deployed?: boolean; 
  released?: boolean; 
  environment?: string;
  fallbackTag?: string;
  branch?: string;
  mainBranch?: boolean;
  matchingBranch?: boolean;
}

See the Pact Broker documentation on selectors for more information.

Contributing

To develop this project, simply install the dependencies with npm install --ignore-scripts, and run npm run watch to for continual development, linting and testing when a source file changes.

Testing

Running npm test will execute the tests that has the *.spec.js pattern.

Questions?

Please search for potential answers or post question on our official Pact StackOverflow.

15.1.0

7 months ago

15.0.2

8 months ago

15.0.0

8 months ago

15.0.1

8 months ago

13.17.0

2 years ago

13.18.0

2 years ago

13.19.0

2 years ago

13.18.1

2 years ago

13.18.2

2 years ago

13.16.1

2 years ago

13.16.0

2 years ago

13.15.0

2 years ago

13.14.0

2 years ago