Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    pact-js-providerpublic

    Node Provider for Pact

    Matches pact for Providers. See Pacts for more information on Pact.

    Setup

    Requirements

    • You will need Ruby 2+. You can install this via ruby-install, rvm or chruby.
    • bundler
    • node (tested on version 4.2.1)
    • npm

    Install bundler with:

    gem install bundler
    bundle --version

    Should print something like:

    Bundler version 1.11.2

    Any project using Pact will then on preinstall run 'bundle install' to install the ruby dependencies.

    Using pact-js-provider

    See test repo

    provider_states_for('Animal Service', 'Zoo App', './pacts/zoo_app-animal_service.json', 'http://localhost:5000', (done) => {
      providerState('there is an alligator named Mary', (done) => {
        setUp( (done) => {
          switchMary(true, done)
        })
     
        it( () => {})
     
        tearDown( (done) => {
          done()
        })
      })
    )}

    Pact-js-provider uses mocha under the hood. As a result currently to run the test you need an it method. The provider_states_for method needs the following parameters:

    • provider name
    • consumer name
    • pact file
    • base url

    The providerState requires the name of the providerState to be tested. Currently this will just output the content from the ruby implementation. There is no error code returned on failure.

    Links

    Pacts - ruby reference implementation

    [Pacts js consumer] (https://github.com/DiUS/pact-consumer-js-dsl)

    Simplifying microservices testing with pacts - Ron Holshausen (one of the original pact authors)

    Pact specification

    Integrated tests are a scam - J.B. Rainsberger

    Consumer Driven Contracts - Ian Robinson

    Integration Contract Tests - Martin Fowler

    Roadmap

    See ROADMAP.md.

    Contributing

    See CONTRIBUTING.md.

    install

    npm i pact-js-provider

    Downloadsweekly downloads

    28

    version

    1.1.5

    license

    MIT

    last publish

    collaborators

    • avatar