UNPKG

4.38 kBJavaScriptView Raw
1var Lab = require('lab');
2var Moonboots = require('..');
3var moonboots;
4
5
6Lab.experiment('js with default options', function () {
7 Lab.before(function (done) {
8 var options = {
9 main: __dirname + '/../fixtures/app/app.js',
10 jsFileName: 'app'
11 };
12 moonboots = new Moonboots(options);
13 moonboots.on('ready', done);
14 });
15 Lab.test('filename', function (done) {
16 Lab.expect(moonboots.jsFileName(), 'js filename').to.equal('app.882ddd9b.min.js');
17 done();
18 });
19 /*
20 Lab.test('content', function (done) {
21 Lab.expect(moonboots.jsSource(), 'js source').to.equal('how do we even test this?');
22 done();
23 });
24 */
25});
26
27Lab.experiment('js with uglify options', function () {
28 Lab.before(function (done) {
29 var options = {
30 main: __dirname + '/../fixtures/app/app.js',
31 jsFileName: 'app',
32 uglify: {
33 mangle: false
34 }
35 };
36
37 moonboots = new Moonboots(options);
38 moonboots.on('ready', done);
39 });
40 Lab.test('filename', function (done) {
41 Lab.expect(moonboots.jsFileName(), 'js filename').to.equal('app.882ddd9b.min.js');
42 done();
43 });
44});
45
46Lab.experiment('js with no minify', function () {
47 Lab.before(function (done) {
48 var options = {
49 main: __dirname + '/../fixtures/app/app.js',
50 jsFileName: 'app',
51 minify: false
52 };
53 moonboots = new Moonboots(options);
54 moonboots.on('ready', done);
55 });
56 Lab.test('filename', function (done) {
57 Lab.expect(moonboots.jsFileName(), 'js filename').to.equal('app.882ddd9b.js');
58 done();
59 });
60 /*
61 Lab.test('content', function (done) {
62 Lab.expect(moonboots.jsSource(), 'js source').to.equal('how do we even test this?');
63 done();
64 });
65 */
66});
67
68Lab.experiment('js with .js already added', function () {
69 Lab.before(function (done) {
70 var options = {
71 main: __dirname + '/../fixtures/app/app.js',
72 jsFileName: 'app.js'
73 };
74 moonboots = new Moonboots(options);
75 moonboots.on('ready', done);
76 });
77 Lab.test('filename', function (done) {
78 Lab.expect(moonboots.jsFileName(), 'js filename').to.equal('app.882ddd9b.min.js');
79 done();
80 });
81});
82
83Lab.experiment('modulesDir', function () {
84 Lab.before(function (done) {
85 var options = {
86 main: __dirname + '/../fixtures/app/app.js',
87 jsFileName: 'app',
88 modulesDir: __dirname + '/../fixtures/modules'
89 };
90 moonboots = new Moonboots(options);
91 moonboots.on('ready', done);
92 });
93 Lab.test('module foo is in source', function (done) {
94 moonboots.jsSource(function (err, js) {
95 Lab.expect(js, 'js source').to.contain('"foo"');
96 done();
97 });
98 });
99});
100
101Lab.experiment('transforms', function () {
102 var transformRan = 0;
103 Lab.before(function (done) {
104 var options = {
105 main: __dirname + '/../fixtures/app/app.js',
106 jsFileName: 'app',
107 browserify: {
108 transforms: [
109 function () {
110 var through = require('through');
111 transformRan++;
112 return through(
113 function write() {},
114 function _end() {
115 this.queue(null);
116 }
117 );
118 }
119 ]
120 }
121 };
122 moonboots = new Moonboots(options);
123 moonboots.on('ready', done);
124 });
125 Lab.test('ran', function (done) {
126 Lab.expect(transformRan).to.equal(1);
127 done();
128 });
129});
130
131Lab.experiment('sync beforeBuildJS', function () {
132 var beforeRan = false;
133 Lab.before(function (done) {
134 var options = {
135 main: __dirname + '/../fixtures/app/app.js',
136 jsFileName: 'app',
137 minify: false,
138 beforeBuildJS: function () {
139 beforeRan = true;
140 }
141 };
142 moonboots = new Moonboots(options);
143 moonboots.on('ready', done);
144 });
145 Lab.test('ran', function (done) {
146 Lab.expect(beforeRan).to.equal(true);
147 done();
148 });
149});