/*globals describe, beforeEach, afterEach, it*/ /*jshint expr:true*/ var should = require('should'), sinon = require('sinon'), decideIsAdmin = require('../../../server/middleware/decide-is-admin'); // To stop jshint complaining should.equal(true, true); describe('Middleware: decideIsAdmin', function () { var sandbox, res, req, next; beforeEach(function () { sandbox = sinon.sandbox.create(); next = sinon.spy(); res = sinon.spy(); req = {}; }); afterEach(function () { sandbox.restore(); }); it('sets the isAdmin flag if the url contains /ghost/.', function (done) { var trueUrls = [ '/ghost/', '/ghost/foo?bar=foo' ], falseUrls = [ '/ghost', 'ghost/', '/foobar/ghost', '/things/ghost/foo' ]; trueUrls.forEach(function (url) { res = sinon.spy(); next = sinon.spy(); req.url = url; decideIsAdmin(req, res, next); res.isAdmin.should.be.exactly(true); next.calledOnce.should.be.exactly(true); }); falseUrls.forEach(function (url) { res = sinon.spy(); next = sinon.spy(); req.url = url; decideIsAdmin(req, res, next); res.isAdmin.should.be.exactly(false); next.calledOnce.should.be.exactly(true); }); done(); }); });