/*globals describe, beforeEach, it*/ var assert = require('assert'), should = require('should'), sinon = require('sinon'), when = require('when'), express = require('express'), middleware = require('../../server/middleware'); describe('Middleware', function () { describe('staticTheme', function () { var realExpressStatic = express.static; beforeEach(function () { sinon.stub(middleware, 'forwardToExpressStatic').yields(); }); afterEach(function () { middleware.forwardToExpressStatic.restore(); }); it('should call next if hbs file type', function (done) { var req = { url: 'mytemplate.hbs' }; middleware.staticTheme(null)(req, null, function (a) { should.not.exist(a); middleware.forwardToExpressStatic.calledOnce.should.be.false; return done(); }); }); it('should call next if md file type', function (done) { var req = { url: 'README.md' }; middleware.staticTheme(null)(req, null, function (a) { should.not.exist(a); middleware.forwardToExpressStatic.calledOnce.should.be.false; return done(); }); }); it('should call next if txt file type', function (done) { var req = { url: 'LICENSE.txt' }; middleware.staticTheme(null)(req, null, function (a) { should.not.exist(a); middleware.forwardToExpressStatic.calledOnce.should.be.false; return done(); }); }); it('should call next if json file type', function (done) { var req = { url: 'sample.json' } middleware.staticTheme(null)(req, null, function (a) { should.not.exist(a); middleware.forwardToExpressStatic.calledOnce.should.be.false; return done(); }); }); it('should call express.static if valid file type', function (done) { var ghostStub = { paths: function() { return {activeTheme: 'ACTIVETHEME'}; } }; var req = { url: 'myvalidfile.css' }; middleware.staticTheme(ghostStub)(req, null, function (req, res, next) { middleware.forwardToExpressStatic.calledOnce.should.be.true; assert.deepEqual(middleware.forwardToExpressStatic.args[0][0], ghostStub); return done(); }); }); }); });