@tlrg/middleware-js
Version:
Node module for sharing common middlewares.
70 lines (52 loc) • 1.81 kB
JavaScript
var proxyquire = require('proxyquire').noCallThru();
var chai = require('chai');
chai.should();
var sinon = require('sinon');
describe('meta mobile only', function () {
it('should call ismobile as part of the middleware', function () {
var req = {
headers: {
'user-agent': 'clearlyMobile'
}
};
var isMobileJsStub = sinon.stub().returns({
any: true
});
var mobileOnly = proxyquire('../../lib/middlewares/meta/mobileOnly', {
ismobilejs: isMobileJsStub
});
mobileOnly(req);
isMobileJsStub.called.should.equal(true);
});
it('should call ismobile with the user agent', function () {
var req = {
headers: {
'user-agent': 'clearlyMobile'
}
};
var isMobileJsStub = sinon.stub().returns({
any: true
});
var mobileOnly = proxyquire('../../lib/middlewares/meta/mobileOnly', {
ismobilejs: isMobileJsStub
});
mobileOnly(req);
isMobileJsStub.calledWith('clearlyMobile').should.equal(true);
});
it('should return true when on mobile', function () {
var req = {
headers: {
'user-agent': 'clearlyMobile'
}
};
var isMobileJsStub = sinon.stub().returns({ phone:false });
isMobileJsStub.withArgs('clearlyMobile').returns({ phone:true });
var mobileOnly = proxyquire('../../lib/middlewares/meta/mobileOnly', {
ismobilejs: isMobileJsStub
});
var result = mobileOnly(req);
result.should.equal(true);
var secondTime = mobileOnly({headers: {'user-agent': ''}});
secondTime.should.equal(false);
});
});