0.0.4 • Published 8 years ago
hapi-test-request v0.0.4
Hapi request test helper
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');
// Create a server with a host and port
const server = new Hapi.Server();
server.connection({
host: 'localhost',
port: 8000
});
// Add the route
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
});
}
});
// Start the server
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' // Will add prefix for all requests
}
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' // will be merged with prefix. Will be called: /api/v1/test
})
.then((res) => {
expect(res.statusCode).to.equal(200);
})
.then(done)
.catch(done);
});