karma-pact v0.0.7
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.exports = function (config) {
config.set({
// in here we are simply telling to use Jasmine with Pact
frameworks: ['jasmine', 'pact'],
// the Pact opts will go here
pact: {}
})
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