Ghost/test/unit/web/admin/controller_spec.js

46 lines
1.4 KiB
JavaScript
Raw Normal View History

require('should');
const sinon = require('sinon');
const configUtils = require('../../../utils/configUtils');
const controller = require('../../../../core/server/web/admin/controller');
describe('Admin App', function () {
describe('controller', function () {
const req = {};
let res;
beforeEach(function () {
res = {
sendFile: sinon.spy()
};
configUtils.restore();
});
afterEach(function () {
sinon.restore();
});
it('adds x-frame-options header when adminFrameProtection is enabled (default)', function () {
// default config: configUtils.set('adminFrameProtection', true);
controller(req, res);
res.sendFile.called.should.be.true();
res.sendFile.calledWith(
sinon.match.string,
sinon.match.hasNested('headers.X-Frame-Options', sinon.match('sameorigin'))
).should.be.true();
});
it('doesn\'t add x-frame-options header when adminFrameProtection is disabled', function () {
configUtils.set('adminFrameProtection', false);
controller(req, res);
res.sendFile.called.should.be.true();
res.sendFile.calledWith(
sinon.match.string,
sinon.match.hasNested('headers.X-Frame-Options')
).should.be.false();
});
});
});