1 | var t = require('../test-lib/test.js');
|
2 | var assert = require('assert');
|
3 | var _ = require('@sailshq/lodash');
|
4 |
|
5 | describe('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 |
|
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',
|
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',
|
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',
|
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 |
|
109 | assert(apos.assets && apos.assets.color === 'blue');
|
110 |
|
111 | assert(_.difference(_.keys(defaultModules), _.keys(apos.modules)).length === 0);
|
112 | return t.destroy(apos, done);
|
113 | }
|
114 | });
|
115 | });
|
116 | });
|