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

    hapi-testpublic

    hapi-test

    Test hapi plugins with chaining method calls and assertions.

    Build Status

    Assertions

    Using the end method you can write your own assertions in anyway you want.

    //chai assertions
    var hapiTest = require('hapi-test'),
        plugin = require('your-plugin'),
        assert = require('chai').assert;
     
    hapiTest({ plugins: [ plugin ] })
        .get('/persons')
        .end(function (result) {
            assert(result.statusCode === 200);
        });

    Status code

    If you want to test status code you can simply assert the statusCode number

    hapiTest({ plugins: [ plugin ] })
        .get('/persons')
        .assert(200)

    Headers

    To test a header value you can do an assert with header name as first parameter and header value as second. Works with strings.

    //string
    hapiTest({plugins: [ plugin ] })
        .get('/person')
        .assert('connection', 'keep-alive');

    Async testing

    If you are using mocha you can pass in the done function to any assertion as last parameter.

     
    it('should 200 on persons', function(done) {
        hapiTest({ plugins: [ plugin ] })
            .get('/person')
            .assert(200, done)
    });

    Mocha also supports promises.

     
    it('should 200 on persons', function() {
        return hapiTest({ plugins: [ plugin ] })
            .get('/person')
            .assert(200)
    });

    Keep instance of server to speed up tests

    If you have multiple tests on the same server / plugins you can create an instance of the server and use this in the constructor. This will speed up the tests as it does not need to create a new server and initialize the plugins for each test.

    // example using mocha
    var hapiTest = require('hapi-test'),
        Hapi = require('Hapi'),
        plugin = require('your-plugin'),
        assert = require('chai').assert;
     
    var server;
     
    before(function (done) {
     
        server = new Hapi.Server();
        server.connection({
            port: 8888
        })
     
        server.register({
            name: 'plugin',
            version: '0.0.1',
            register: plugin.register
        }, done);
     
    });
     
    it('can now be used', function (done) {
        hapiTest({ server: server })
            .get('/person')
            .assert(200, done);
    });
     

    Keywords

    install

    npm i hapi-test

    Downloadslast 7 days

    45

    version

    5.2.0

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar