Gavel detects important differences between actual and expected HTTP transactions (HTTP request and response pairs). Gavel also decides whether the actual HTTP transaction is valid or not.
- JavaScript
- Didn't find your favorite language? Add a new one!
This repository contains implementation-independent behavior specification of Gavel. It's written in Gherkin, language used by Cucumber. Two main benefits are:
- Any Gavel implementation can be tested against the specification, which ensures the behavior is uniform.
- Documentation at Relish is generated from the specification, which ensures it's always up-to-date.
Examples are made in raw HTTP to focus on implementation independence.
To use the specification in your project and test against it, install it as npm package (or include as a git submodule):
$ npm install gavel-spec
...
$ find ./node_modules/gavel-spec/features/**/*.feature
./node_modules/gavel-spec/features/expectations/body_json_example.feature
./node_modules/gavel-spec/features/expectations/body_text_example.feature
./node_modules/gavel-spec/features/expectations/headers.feature
./node_modules/gavel-spec/features/expectations/status_code.feature
...
It's also possible to get path to the directory with features from JavaScript:
var featuresPath = require('gavel-spec').featuresPath;
console.log(featuresPath); // prints '/.../node_modules/gavel-spec/features/'
Use Cucumber for testing.
Currently publishing of a new version of the generated documentation is done manually:
- Install Relish CLI:
gem install relish
- Add current version:
relish versions:add apiary/gavel:1.1.0
(the1.1.0
should be the same number which appears on npm as the latest package version) - Publish new version of the documentation:
relish push apiary/gavel:1.1.0 path ./features/
Steps 2-3 has been simplified as npm run docs:publish
command.