Noiseless Party Machine


    5.0.0 • Public • Published

    Behavior spec for Gavel, validator of HTTP transactions

    Relish docs npm version Greenkeeper badge

    Gavel - Validator of HTTP Transactions

    What is Gavel?

    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.



    About gavel-spec

    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

    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.

    Publishing Documentation

    Currently publishing of a new version of the generated documentation is done manually:

    1. Install Relish CLI: gem install relish
    2. Add current version: relish versions:add apiary/gavel:1.1.0 (the 1.1.0 should be the same number which appears on npm as the latest package version)
    3. 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.


    npm i gavel-spec

    DownloadsWeekly Downloads






    Unpacked Size

    201 kB

    Total Files


    Last publish


    • apiary-sre