UNPKG

1.6 kBJavaScriptView Raw
1var t = require('../test-lib/test.js');
2var assert = require('assert');
3
4describe('Base Module', function() {
5
6 var apos;
7
8 after(function(done) {
9 return t.destroy(apos, done);
10 });
11
12 this.timeout(t.timeout);
13
14 it('should be subclassable', function(done) {
15 apos = require('../index.js')({
16 root: module,
17 shortName: 'test',
18
19 modules: {
20 // will push an asset for us to look for later
21 'apostrophe-test-module-push': {},
22 // test the getOption method of modules
23 'test-get-option': {}
24 },
25 afterInit: function(callback) {
26 assert(apos.test && apos.test.color === 'red');
27 return done();
28 }
29 });
30 });
31
32 it('should provide apos.assets with the right context for pushing assets', function(done) {
33 var found = false;
34 for (var i = apos.assets.pushed.stylesheets.length - 1; i >= 0; i--) {
35 if (apos.assets.pushed.stylesheets[i].file === __dirname + '/lib/modules/apostrophe-test-module-push/public/css/test.css') {
36 found = true;
37 break;
38 }
39 };
40 assert(found);
41 return done();
42 });
43
44 it('should produce correct responses via the getOption method', function() {
45 var mod = apos.modules['test-get-option'];
46 var req = apos.tasks.getReq();
47 assert.equal(mod.getOption(req, 'flavors.grape.sweetness'), 20);
48 assert.equal(mod.getOption(req, 'flavors.cheese.swarthiness'), undefined);
49 assert.equal(mod.getOption(req, 'flavors.grape.ingredients.0'), 'chemicals');
50 var markup = mod.render(req, 'test.html');
51 assert(markup.match(/^\s*20\s*$/));
52 });
53});