cls-middleware
Version:
Connect & Restify middleware to bind routes to continuation-local storage
46 lines (37 loc) • 1.24 kB
JavaScript
;
var test = require('tap').test;
test("basic express scenario", function (t) {
t.plan(6);
var http = require('http');
var express = require('express');
var cls = require('continuation-local-storage');
var clsify = require('../middleware.js');
var request = require('request');
var ns = cls.createNamespace('cls@test');
ns.run(function () {
ns.set('value', 1);
var app = express();
t.doesNotThrow(function () { app.use(clsify(ns)); });
app.use(function (req, res, next) {
var orig = ns.get('value');
t.equal(orig, 1, "value is default");
ns.set('value', orig + 1);
next();
});
app.get('/THUNDAR', function (req, res) {
t.equal(ns.get('value'), 2, "value was incremented");
res.send({status : 'ok'});
res.end();
});
var server = http.createServer(app).listen(8080, function () {
request('http://localhost:8080/THUNDAR',
{json : true},
function (error, res, body) {
t.notOk(error, "no error found");
t.equal(res.statusCode, 200, "got OK response");
t.deepEqual(body, {status : 'ok'}, "body was as expected");
server.close();
});
});
});
});