Skip to content

Commit

Permalink
tests: pull out test utils into support dir
Browse files Browse the repository at this point in the history
  • Loading branch information
dougwilson committed Feb 7, 2017
1 parent f2234b3 commit aaa5b90
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 53 deletions.
14 changes: 14 additions & 0 deletions test/support/sws.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
var stream = require('readable-stream')
var util = require('util')

module.exports = SlowWriteStream

function SlowWriteStream () {
stream.Writable.call(this)
}

util.inherits(SlowWriteStream, stream.Writable)

SlowWriteStream.prototype._write = function _write (chunk, encoding, callback) {
setTimeout(callback, 1000)
}
54 changes: 54 additions & 0 deletions test/support/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
var assert = require('assert')
var finalhandler = require('../..')
var http = require('http')
var request = require('supertest')
var SlowWriteStream = require('./sws')

exports.assert = assert
exports.createError = createError
exports.createServer = createServer
exports.createSlowWriteStream = createSlowWriteStream
exports.request = request
exports.shouldHaveStatusMessage = shouldHaveStatusMessage
exports.shouldNotHaveHeader = shouldNotHaveHeader

function createError (message, props) {
var err = new Error(message)

if (props) {
for (var prop in props) {
err[prop] = props[prop]
}
}

return err
}

function createServer (err, opts) {
return http.createServer(function (req, res) {
var done = finalhandler(req, res, opts)

if (typeof err === 'function') {
err(req, res, done)
return
}

done(err)
})
}

function createSlowWriteStream () {
return new SlowWriteStream()
}

function shouldHaveStatusMessage (statusMessage) {
return function (test) {
assert.equal(test.res.statusMessage, statusMessage, 'should have statusMessage "' + statusMessage + '"')
}
}

function shouldNotHaveHeader (header) {
return function (test) {
assert.ok(test.res.headers[header] === undefined, 'response does not have header "' + header + '"')
}
}
60 changes: 7 additions & 53 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@ var assert = require('assert')
var finalhandler = require('..')
var http = require('http')
var request = require('supertest')
var stream = require('readable-stream')
var util = require('util')
var utils = require('./support/utils')

var createError = utils.createError
var createServer = utils.createServer
var createSlowWriteStream = utils.createSlowWriteStream
var shouldHaveStatusMessage = utils.shouldHaveStatusMessage
var shouldNotHaveHeader = utils.shouldNotHaveHeader

var describeStatusMessage = !/statusMessage/.test(http.IncomingMessage.toString())
? describe.skip
Expand Down Expand Up @@ -419,54 +424,3 @@ describe('finalhandler(req, res)', function () {
})
})
})

function createError (message, props) {
var err = new Error(message)

if (props) {
for (var prop in props) {
err[prop] = props[prop]
}
}

return err
}

function createServer (err, opts) {
return http.createServer(function (req, res) {
var done = finalhandler(req, res, opts)

if (typeof err === 'function') {
err(req, res, done)
return
}

done(err)
})
}

function createSlowWriteStream () {
return new SlowWriteStream()
}

function shouldHaveStatusMessage (statusMessage) {
return function (test) {
assert.equal(test.res.statusMessage, statusMessage, 'should have statusMessage "' + statusMessage + '"')
}
}

function shouldNotHaveHeader (header) {
return function (test) {
assert.ok(test.res.headers[header] === undefined, 'response does not have header "' + header + '"')
}
}

function SlowWriteStream () {
stream.Writable.call(this)
}

util.inherits(SlowWriteStream, stream.Writable)

SlowWriteStream.prototype._write = function _write (chunk, encoding, callback) {
setTimeout(callback, 1000)
}

0 comments on commit aaa5b90

Please sign in to comment.