UNPKG

@tlrg/middleware-js

Version:
91 lines (80 loc) 2.56 kB
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); }); }); }); });