@tlrg/middleware-js
Version:
Node module for sharing common middlewares.
92 lines (74 loc) • 2.3 kB
JavaScript
var app = require('express')();
var request = require('supertest');
var cookieParser = require('cookie-parser');
var tax = require('../lib/middlewares/tax');
app.use(cookieParser());
describe('tax middleware', function () {
var agent;
var featureSwitch;
before(function () {
app.get('/', function (req, resp, next) {
req.moonstick = {
featureSwitches: {
hideTax: featureSwitch
}
};
next();
}, tax, function (req, res) {
res.status(200).json(req.moonstick);
});
agent = request(app);
});
beforeEach(function () {
featureSwitch = undefined;
});
it('should show tax by default', function (done) {
agent
.get('/')
.end(function (err, resp) {
if (err) {
return done(err);
}
resp.body.hideTax.should.equal(false);
done();
});
});
it('should hide tax if feature switch is turned on', function (done) {
featureSwitch = true;
agent
.get('/')
.end(function (err, resp) {
if (err) {
return done(err);
}
resp.body.hideTax.should.equal(true);
done();
});
});
it('should hide tax if from AR redirect cookie is set', function (done) {
featureSwitch = false;
agent
.get('/')
.set('Cookie', 'redirectedFromAsiarooms=true')
.end(function (err, resp) {
if (err) {
return done(err);
}
resp.body.hideTax.should.equal(true);
done();
});
});
it('should hide tax if from asiarooms-redirect-acknowledged cookie is set', function (done) {
featureSwitch = false;
agent
.get('/')
.set('Cookie', 'asiarooms-redirect-acknowledged=true')
.end(function (err, resp) {
if (err) {
return done(err);
}
resp.body.hideTax.should.equal(true);
done();
});
});
});