forked from arne/asdf-games
112 lines
2.6 KiB
JavaScript
112 lines
2.6 KiB
JavaScript
|
/* global describe, it */
|
||
|
|
||
|
var stacked = require('../stacked')
|
||
|
, expect = require('chai').expect
|
||
|
, connect = require('connect')
|
||
|
, request = require('supertest')
|
||
|
|
||
|
describe('stacked()', function () {
|
||
|
describe('.use(layer)', function () {
|
||
|
it('execute as middleware', function (done) {
|
||
|
var app = connect()
|
||
|
var pack = stacked()
|
||
|
var middleware1Called = false
|
||
|
var middleware2Called = false
|
||
|
|
||
|
pack.use(function (req, res, next) {
|
||
|
middleware1Called = true
|
||
|
next()
|
||
|
})
|
||
|
|
||
|
pack.use(function (req, res, next) {
|
||
|
middleware2Called = true
|
||
|
res.statusCode = 200
|
||
|
res.end()
|
||
|
})
|
||
|
|
||
|
app.use(pack)
|
||
|
|
||
|
request(app)
|
||
|
.get('/')
|
||
|
.expect(200)
|
||
|
.expect(function () {
|
||
|
expect(middleware1Called).to.equal(true)
|
||
|
expect(middleware2Called).to.equal(true)
|
||
|
})
|
||
|
.end(done)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('.use(layer, layer)', function () {
|
||
|
it('execute as middleware', function (done) {
|
||
|
var app = connect()
|
||
|
var middleware1Called = false
|
||
|
var middleware2Called = false
|
||
|
var pack = stacked(
|
||
|
function (req, res, next) {
|
||
|
middleware1Called = true
|
||
|
next()
|
||
|
},
|
||
|
function (req, res, next) {
|
||
|
middleware2Called = true
|
||
|
res.statusCode = 200
|
||
|
res.end()
|
||
|
}
|
||
|
)
|
||
|
|
||
|
app.use(pack)
|
||
|
|
||
|
request(app)
|
||
|
.get('/')
|
||
|
.expect(200)
|
||
|
.expect(function () {
|
||
|
expect(middleware1Called).to.equal(true)
|
||
|
expect(middleware2Called).to.equal(true)
|
||
|
})
|
||
|
.end(done)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('.layers', function () {
|
||
|
it('is exposed on object', function () {
|
||
|
var pack = stacked()
|
||
|
var layer = function (req, res, next) {
|
||
|
next()
|
||
|
}
|
||
|
pack.use(layer)
|
||
|
|
||
|
expect(pack.layers.length).to.equal(1)
|
||
|
expect(pack.layers[0].toString()).to.equal(layer.toString())
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('.mount(path, fn)', function () {
|
||
|
it('executes at the given path', function (done) {
|
||
|
var app = connect()
|
||
|
var pack = stacked()
|
||
|
var mountedMiddleware1Called = false
|
||
|
var mountedMiddleware2Called = false
|
||
|
|
||
|
pack.mount('/mount1', function (req, res, next) {
|
||
|
mountedMiddleware1Called = true
|
||
|
next()
|
||
|
})
|
||
|
|
||
|
pack.mount('/mount2', function (req, res, next) {
|
||
|
mountedMiddleware2Called = true
|
||
|
next()
|
||
|
})
|
||
|
|
||
|
app.use(pack)
|
||
|
|
||
|
request(app)
|
||
|
.get('/mount1')
|
||
|
.expect(function () {
|
||
|
expect(mountedMiddleware1Called).to.equal(true)
|
||
|
expect(mountedMiddleware2Called).to.equal(false)
|
||
|
})
|
||
|
.end(done)
|
||
|
})
|
||
|
})
|
||
|
})
|