apostrophe
Version:
The Apostrophe Content Management System.
54 lines (45 loc) • 1.6 kB
JavaScript
var t = require('../test-lib/test.js');
var assert = require('assert');
describe('Base Module', function() {
var apos;
after(function(done) {
return t.destroy(apos, done);
});
this.timeout(t.timeout);
it('should be subclassable', function(done) {
apos = require('../index.js')({
root: module,
shortName: 'test',
modules: {
// will push an asset for us to look for later
'apostrophe-test-module-push': {},
// test the getOption method of modules
'test-get-option': {}
},
afterInit: function(callback) {
assert(apos.test && apos.test.color === 'red');
return done();
}
});
});
it('should provide apos.assets with the right context for pushing assets', function(done) {
var found = false;
for (var i = apos.assets.pushed.stylesheets.length - 1; i >= 0; i--) {
if (apos.assets.pushed.stylesheets[i].file === __dirname + '/lib/modules/apostrophe-test-module-push/public/css/test.css') {
found = true;
break;
}
};
assert(found);
return done();
});
it('should produce correct responses via the getOption method', function() {
var mod = apos.modules['test-get-option'];
var req = apos.tasks.getReq();
assert.equal(mod.getOption(req, 'flavors.grape.sweetness'), 20);
assert.equal(mod.getOption(req, 'flavors.cheese.swarthiness'), undefined);
assert.equal(mod.getOption(req, 'flavors.grape.ingredients.0'), 'chemicals');
var markup = mod.render(req, 'test.html');
assert(markup.match(/^\s*20\s*$/));
});
});