Hapi request test helper
![Follow @trailsjs on Twitter](https://img.shields.io/twitter/follow/zolotarev_k.svg?style=social)
HTTP assertions made easy for Hapi using Promises
Requirements
This module requires Node.js v4.1+
Usage
Server file should export server server.js
:
'use strict';
const Hapi = require('hapi');
const server = new Hapi.Server();
server.connection({
host: 'localhost',
port: 8000
});
server.route({
method: 'GET',
path:'/hello',
handler: function (request, reply) {
return reply({
test: true
});
}
});
server.route({
method: 'GET',
path: '/api/v1/test',
handler: function (request, reply) {
reply({
test: true
});
}
});
server.start((err) => {
if (err) {
throw err;
}
});
module.exports = server;
Example of some.test.js
:
const server = require('../server.js');
const request = require('hapi-test-request')(server);
let.it('something', (done) => {
request.call({
method: 'POST',
url: '/mail',
payload: {
email: 'someemail@email.com'
}
}).then((response) => {
expect(response.statusCode).to.equal(200);
done();
});
});
Options for testing
{
prefix: '/api/v1'
}
Example:
const server = require('./server');
const request = require('hapi-test-request');
const lab = require('lab');
lab.it('Some tests', (done) => {
const config = {
prefix: '/api/v1'
};
request(server, config)
.call({
method: 'GET',
url: '/test'
})
.then((res) => {
expect(res.statusCode).to.equal(200);
})
.then(done)
.catch(done);
});
License
MIT