Karma Pact
Implementation of a Karma Plugin to launch a Pact Mock Server before executing your Pact tests on the browser.
From the Pact website:
The Pact family of frameworks provide support for Consumer Driven Contracts testing.
A Contract is a collection of agreements between a client (Consumer) and an API (Provider) that describes the interactions that can take place between them.
Consumer Driven Contracts is a pattern that drives the development of the Provider from its Consumers point of view.
Pact is a testing tool that guarantees those Contracts are satisfied.
Read Getting started with Pact for more information on how to get going.
Installation
First install the package from NPM:
npm install --save-dev karma-pact
Then, on your Karma Configuration file, add the below:
module { config
The pact
configuration in the file is as follows (same present at pact-node):
port: <Number> // Port number that the server runs on, defaults to 1234 host: <String> // Host on which to bind the server on, defaults to 'localhost' log: <String> // File to log output on relative to current working directory, defaults to none ssl: <Boolean> // Create a self-signed SSL cert to run the server over HTTPS , defaults to 'false' cors: <Boolean> // Allow CORS OPTION requests to be accepted, defaults to 'false' dir: <String> // Directory to write the pact contracts relative to the current working directory, defaults to none spec: <Number> // The pact specification version to use when writing pact contracts, defaults to '1' consumer: <String> // The name of the consumer to be written to the pact contracts, defaults to none provider: <String> // The name of the provider to be written to the pact contracts, defaults to none
Examples
Check the karma
folder under Pact JS for examples with Mocha and Jasmine.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
If you would like to implement Pact
in another language, please check out the Pact specification and have a chat to one of us on the pact-dev Google group.
The vision is to have a compatible Pact
implementation in all the commonly used languages, your help would be greatly appreciated!
Contact
- Twitter: @pact_up
- Google users group: https://groups.google.com/forum/#!forum/pact-support