linagora-rse
Version:
81 lines (63 loc) • 2.25 kB
JavaScript
const expect = require('chai').expect;
const sinon = require('sinon');
const q = require('q');
describe('The generated-javascript controller', function() {
describe('jsApp() method', function() {
let core;
beforeEach(function() {
core = this.helpers.requireBackend('core');
sinon.stub(core.assets, 'prepareJsFiles', core.assets.prepareJsFiles);
});
it('should call assets.prepareJsFiles', function(done) {
const ctrl = this.helpers.requireBackend('webserver/controllers/generated-javascript');
ctrl.jsApp({params: {
appName: 'testApp',
namespace: 'm1'
}}, {type: () => {}, end: () => {
expect(core.assets.prepareJsFiles).to.have.been.calledWith('jsApp', 'testApp', 'm1');
done();
}});
});
it('should set content-type to application/javascript', function(done) {
const ctrl = this.helpers.requireBackend('webserver/controllers/generated-javascript');
ctrl.jsApp({params: {
appName: 'testApp',
namespace: 'm1'
}}, {type: type => {
expect(type).to.equal('application/javascript');
done();
}, end: () => {}});
});
it('should call assets.prepareJsFiles only once', function(done) {
const ctrl = this.helpers.requireBackend('webserver/controllers/generated-javascript');
const req = {params: {
appName: 'testApp',
namespace: 'm1'
}};
ctrl.jsApp(req, {type: () => {}, end: () => {
ctrl.jsApp(req, {type: () => {}, end: () => {
expect(core.assets.prepareJsFiles).to.have.callCount(1);
done();
}});
}});
});
it('should send back a 500 code if something fails', function(done) {
core.assets.prepareJsFiles.restore();
sinon.stub(core.assets, 'prepareJsFiles', function() {
return q.reject(new Error('err'));
});
const ctrl = this.helpers.requireBackend('webserver/controllers/generated-javascript');
const req = {params: {
appName: 'testApp',
namespace: 'm1'
}};
ctrl.jsApp(req, {status: code => {
expect(code).to.equal(500);
done();
return {
end: () => {}
};
}});
});
});
});