@tlrg/middleware-js
Version:
Node module for sharing common middlewares.
92 lines (82 loc) • 2.62 kB
JavaScript
require('chai').should();
var request = require('supertest');
var app = require('express')();
describe('Brand Middleware', function () {
var brandMiddleware = require('../lib/middlewares/brand');
before(function () {
app.use(function moonstickSetup(req, res, next) {
req.moonstick = req.moonstick || {};
req.moonstick.errorParams = req.params;
req.moonstick.params = req.params;
next();
});
app.get('/', brandMiddleware, function (req, res) {
res.status(200).json({
brand: req.moonstick.brand,
laterooms: req.moonstick.laterooms,
asiarooms: req.moonstick.asiarooms,
'laterooms.com.au': req.moonstick['laterooms.com.au']
});
});
});
it('should set the brand for laterooms based on the host header', function (done) {
request(app)
.get('/')
.set({
host: 'web.test.laterooms.com'
})
.expect(200)
.expect({
brand: 'laterooms',
laterooms: true
}, done);
});
it('should set the brand for asiarooms based on the host header', function (done) {
request(app)
.get('/')
.set({
host: 'stage.asiarooms.com'
})
.expect(200)
.expect({
brand: 'asiarooms',
asiarooms: true
}, done);
});
it('should set the brand to laterooms by default', function (done) {
request(app)
.get('/')
.set({
host: '172.1.1.1'
})
.expect(200)
.expect({
brand: 'laterooms',
laterooms: true
}, done);
});
it('should set the brand based on the query string if one is present', function (done) {
request(app)
.get('/?brand=asiarooms')
.set({
host: '172.1.1.1'
})
.expect(200)
.expect({
brand: 'asiarooms',
asiarooms: true
}, done);
});
it('should set the brand to laterooms.com.au if host is laterooms.com.au', function (done) {
request(app)
.get('/')
.set({
host: 'web.test.laterooms.com.au'
})
.expect(200)
.expect({
brand: 'laterooms.com.au',
'laterooms.com.au': true
}, done);
});
});