5.2.0 • Published 8 years ago

hapi-test v5.2.0

Weekly downloads
24
License
MIT
Repository
github
Last release
8 years ago

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);
});
5.2.0

8 years ago

5.1.0

8 years ago

5.0.0

10 years ago

4.0.0

10 years ago

3.0.0

10 years ago

2.0.0

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago