@tlrg/middleware-js
Version:
Node module for sharing common middlewares.
91 lines (80 loc) • 2.56 kB
JavaScript
require('chai').should();
var request = require('supertest');
var app = require('express')();
describe('Domain Middleware', function () {
var domainMiddleware = require('../lib/middlewares/domain');
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('/', domainMiddleware, function (req, res) {
res.status(200).json({
domain: req.moonstick.domain
});
});
});
it('should return the domain passed via query string', function (done) {
request(app)
.get('?domain=asiarooms.com')
.set({
host: 'laterooms.com'
})
.expect(200)
.expect({
domain: 'asiarooms.com'
}, done);
});
it('should default to laterooms.com if domain is not recognised', function (done) {
request(app)
.get('/')
.expect(200)
.expect({
domain: 'laterooms.com'
}, done);
});
it('should return domain from headers if domain is not in querystring', function (done) {
request(app)
.get('/')
.set({
host: 'web.dev.laterooms.com.au'
})
.expect(200)
.expect({
domain: 'laterooms.com.au'
}, done);
});
describe('Accepted domains', function () {
var domains = [{
domain: 'www.laterooms.com',
accepted: 'laterooms.com'
}, {
domain: 'web.test.laterooms.com',
accepted: 'laterooms.com'
}, {
domain: 'www.laterooms.com.au',
accepted: 'laterooms.com.au'
}, {
domain: 'www.bleurggghhhh.com',
accepted: 'laterooms.com'
}, {
domain: 'www.asiarooms.com',
accepted: 'asiarooms.com'
}];
domains.forEach(function (domain) {
it('should only accept certain domains', function (done) {
request(app)
.get('/')
.set({
host: domain.domain
})
.expect(200)
.expect({
domain: domain.accepted
}, done);
});
});
});
});