UNPKG

3.35 kBJavaScriptView Raw
1var t = require('../test-lib/test.js');
2var assert = require('assert');
3var _ = require('@sailshq/lodash');
4
5describe('Apostrophe', function() {
6
7 this.timeout(t.timeout);
8
9 it('should exist', function(done) {
10 var apos = require('../index.js');
11 assert(apos);
12 return t.destroy(apos, done);
13 });
14
15 // BOOTSTRAP FUNCTIONS ------------------------------------------- //
16
17 it('should merge the options and local.js correctly', function(done) {
18 var apos = require('../index.js')({
19 root: module,
20 shortName: 'test',
21 overrideTest: 'test', // overriden by data/local.js
22
23 __testDefaults: {
24 modules: {}
25 },
26 afterInit: function(callback) {
27 assert(apos.options.overrideTest === 'foo');
28 return t.destroy(apos, done);
29 }
30 });
31 });
32
33 it('should accept a `__localPath` option and invoke local.js as a function if it is provided as one', function(done) {
34 var apos = require('../index.js')({
35 root: module,
36 shortName: 'test',
37 overrideTest: 'test', // overriden by data/local_fn.js
38
39 __localPath: '/data/local_fn.js',
40 __testDefaults: {
41 modules: {}
42 },
43 afterInit: function(callback) {
44 assert(apos.options.overrideTest === 'foo');
45 return t.destroy(apos, done);
46 }
47 });
48 });
49
50 it('should invoke local.js as a function with the apos and config object', function(done) {
51 var apos = require('../index.js')({
52 root: module,
53 shortName: 'test',
54 overrideTest: 'test', // concated in local_fn_b.js
55
56 __localPath: '/data/local_fn_b.js',
57 __testDefaults: {
58 modules: {}
59 },
60 afterInit: function(callback) {
61 assert(apos.options.overrideTest === 'test-foo');
62 return t.destroy(apos, done);
63 }
64 });
65 });
66
67 it('should accept a `__testDeafults` option and load the test modules correctly', function(done) {
68 var apos = require('../index.js')({
69 root: module,
70 shortName: 'test',
71
72 __testDefaults: {
73 modules: {
74 'apostrophe-test-module': {}
75 }
76 },
77 afterInit: function(callback) {
78 assert(apos.modules['apostrophe-test-module']);
79 return t.destroy(apos, done);
80 }
81 });
82 });
83
84 it('should create the modules and invoke the construct function correctly', function(done) {
85 var apos = require('../index.js')({
86 root: module,
87 shortName: 'test',
88 __testDefaults: {
89 modules: {
90 'apostrophe-test-module': {}
91 }
92 },
93 afterInit: function(callback) {
94 assert(apos.test && apos.test.color === 'red');
95 return t.destroy(apos, done);
96 }
97 });
98 });
99
100 it('should load the default modules and implicitly subclass the base module correctly', function(done) {
101 var defaultModules = require('../defaults.js').modules;
102
103 var apos = require('../index.js')({
104 root: module,
105 shortName: 'test',
106
107 afterInit: function(callback) {
108 // color = blue is inherited from our implicit subclass of the base module
109 assert(apos.assets && apos.assets.color === 'blue');
110 // make sure that our modules match what is specifed in defaults.js
111 assert(_.difference(_.keys(defaultModules), _.keys(apos.modules)).length === 0);
112 return t.destroy(apos, done);
113 }
114 });
115 });
116});