1 | var t = require('../test-lib/test.js');
|
2 | var assert = require('assert');
|
3 |
|
4 | describe('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 |
|
21 | 'apostrophe-test-module-push': {},
|
22 |
|
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 | });
|