Retest
Request driven library for testing node.js HTTP servers via request.
Note: This library is not heavily maintained. If you're looking for a functional request library with hte ability to mount servers during tests, consider trying Popsicle with the server plugin.
Installation
npm install retest --save-dev
Usage
You may pass a http.Server
, function or string to retest()
- if the server is not listening for connections it will be bound to an ephemeral port so there is no need to keep track of ports.
var retest = require('retest');
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('hello');
});
retest(app).get('/user', function (err, res) {
if (err) throw err;
});
A retest instance accepts the same arguments as request, including the options object.
Multipart Requests
A multipart request can be sent using the form-data module. Just use retest.form()
to create an instance and pass it as the body option, as you would any other object.
var retest = require('retest');
var test = retest(app);
var form = test.form();
// Append fields and files as you normally would.
form.append('username', 'blakeembrey');
form.append('password', 'hunter2');
test.post({
uri: '/user',
body: form
}, function (err, res) {
// ...
});
Callbacks
The callback function is called with two arguments, the error
and response
. The response body will be automatically parsed when possible based on the content type (current application/json
and application/x-www-form-urlencoded
).
Agent
Create an instance that will reuse cookies between requests by calling retest.agent(app)
.
License
MIT