webtap

0.2.0 • Public • Published

webtap

A TAP wrapper for testing webservers

Build Status

Usage

Write a test for your webserver:

// test/test.js
 
var webtap = require('webtap');
 
var test = webtap(function (req, res) {
  res.statusCode = 404;
  res.end('file not found');
});
 
test('GET /', function (t, res) {
  t.equal(res.statusCode, 404);
  t.body('file not found');
});
 
test('custom name', 'POST /', function (t, res) {
  t.equal(res.statusCode, 404);
  t.body('file not found');
});

Then execute it:

$ tap test/test.js
TAP version 13
# GET / 
ok 1 status code 404
ok 2 friendly message
# custom name 
ok 3 status code 404
ok 4 friendly message
 
1..4
# tests 4 
# pass  4 
 
# ok 

API

var test = webtap(server)

Return the test function. server can either be a request handler function (e.g. what express exports) or a server from http.createServer().

test([name, ]method[, path], cb)

Fire a request with method on path to the given server can call cb with:

  • t, the TAP test object
  • res, the response object from http.request()

The test name is either name or a combination of method and path, like GET /.

path can be left out if method already contains the path, like:

test('name', 'GET /', cb);
test('GET /', cb);

t.body(str[, msg])

t is augmented by a body method that buffers the request body into a string, compares it with str and then calls t.end() to finish the test.

If str is not a string but any other JavaScript object, the response will be parsed as JSON and compared to str.

t.*

See the tap documentation.

Installation

With npm do

$ npm install webtap

and

$ npm install -g tap

License

(MIT)

Readme

Keywords

none

Package Sidebar

Install

npm i webtap

Weekly Downloads

1

Version

0.2.0

License

MIT

Last publish

Collaborators

  • juliangruber