1 | var Lab = require('lab');
|
2 | var Moonboots = require('..');
|
3 | var moonboots;
|
4 | var EXPECTED_CSS_HASH = 'app.38ea6c96.css';
|
5 | var EXPECTED_CSS_MIN_HASH = 'app.38ea6c96.min.css';
|
6 |
|
7 |
|
8 | Lab.experiment('css with default options', function () {
|
9 | Lab.before(function (done) {
|
10 | var default_options = {
|
11 | main: __dirname + '/../fixtures/app/app.js',
|
12 | cssFileName: 'app',
|
13 | stylesheets: [
|
14 | __dirname + '/../fixtures/stylesheets/style.css'
|
15 | ]
|
16 | };
|
17 | moonboots = new Moonboots(default_options);
|
18 | moonboots.on('ready', done);
|
19 | });
|
20 | Lab.test('filename', function (done) {
|
21 | Lab.expect(moonboots.cssFileName(), 'css filename').to.equal(EXPECTED_CSS_MIN_HASH);
|
22 | done();
|
23 | });
|
24 | Lab.test('content', function (done) {
|
25 | moonboots.cssSource(function (err, css) {
|
26 | Lab.expect(css, 'css source').to.equal('body{background:#ccc}');
|
27 | });
|
28 | done();
|
29 | });
|
30 | });
|
31 |
|
32 | Lab.experiment('css with no minify', function () {
|
33 | Lab.before(function (done) {
|
34 | var no_minify = {
|
35 | main: __dirname + '/../fixtures/app/app.js',
|
36 | cssFileName: 'app',
|
37 | minify: false,
|
38 | stylesheets: [
|
39 | __dirname + '/../fixtures/stylesheets/style.css'
|
40 | ]
|
41 | };
|
42 | moonboots = new Moonboots(no_minify);
|
43 | moonboots.on('ready', done);
|
44 | });
|
45 | Lab.test('filename', function (done) {
|
46 | Lab.expect(moonboots.cssFileName(), 'css filename').to.equal(EXPECTED_CSS_HASH);
|
47 | done();
|
48 | });
|
49 | Lab.test('content', function (done) {
|
50 | moonboots.cssSource(function (err, css) {
|
51 | Lab.expect(css, 'css source').to.equal('body {background: #ccc;}\n');
|
52 | });
|
53 | done();
|
54 | });
|
55 | });
|
56 |
|
57 | Lab.experiment('css with .css already added', function () {
|
58 | Lab.before(function (done) {
|
59 | var options = {
|
60 | main: __dirname + '/../fixtures/app/app.js',
|
61 | cssFileName: 'app.css',
|
62 | stylesheets: [
|
63 | __dirname + '/../fixtures/stylesheets/style.css'
|
64 | ]
|
65 | };
|
66 | moonboots = new Moonboots(options);
|
67 | moonboots.on('ready', done);
|
68 | });
|
69 | Lab.test('filename', function (done) {
|
70 | Lab.expect(moonboots.cssFileName(), 'css filename').to.equal(EXPECTED_CSS_MIN_HASH);
|
71 | done();
|
72 | });
|
73 | });
|
74 |
|
75 |
|
76 | Lab.experiment('async beforeBuildCSS', function () {
|
77 | var beforeRan = false;
|
78 | Lab.before(function (done) {
|
79 | var no_minify = {
|
80 | main: __dirname + '/../fixtures/app/app.js',
|
81 | cssFileName: 'app',
|
82 | minify: false,
|
83 | beforeBuildCSS: function (next) {
|
84 | beforeRan = true;
|
85 | next();
|
86 | },
|
87 | stylesheets: [
|
88 | __dirname + '/../fixtures/stylesheets/style.css'
|
89 | ]
|
90 | };
|
91 | moonboots = new Moonboots(no_minify);
|
92 | moonboots.on('ready', done);
|
93 | });
|
94 | Lab.test('ran', function (done) {
|
95 | Lab.expect(beforeRan).to.equal(true);
|
96 | done();
|
97 | });
|
98 | });
|
99 |
|
100 | Lab.experiment('sync beforeBuildCSS', function () {
|
101 | var beforeRan = false;
|
102 | Lab.before(function (done) {
|
103 | var no_minify = {
|
104 | main: __dirname + '/../fixtures/app/app.js',
|
105 | cssFileName: 'app',
|
106 | minify: false,
|
107 | beforeBuildCSS: function () {
|
108 | beforeRan = true;
|
109 | },
|
110 | stylesheets: [
|
111 | __dirname + '/../fixtures/stylesheets/style.css'
|
112 | ]
|
113 | };
|
114 | moonboots = new Moonboots(no_minify);
|
115 | moonboots.on('ready', done);
|
116 | });
|
117 | Lab.test('ran', function (done) {
|
118 | Lab.expect(beforeRan).to.equal(true);
|
119 | done();
|
120 | });
|
121 | });
|
122 |
|
123 | Lab.experiment('bad css', function () {
|
124 | Lab.before(function (done) {
|
125 | var bad_css = {
|
126 | main: __dirname + '/../fixtures/app/app.js',
|
127 | cssFileName: 'app',
|
128 | stylesheets: [
|
129 | __dirname + '/../fixtures/stylesheets/style.css'
|
130 | ],
|
131 | beforeBuildCSS: function (done) {
|
132 | done('Could not build css');
|
133 | }
|
134 | };
|
135 | moonboots = new Moonboots(bad_css);
|
136 | moonboots.on('ready', done);
|
137 | });
|
138 | Lab.test('empty css, no crashing', function (done) {
|
139 | moonboots.cssSource(function (err, css) {
|
140 | Lab.expect(css, 'css source').to.equal(undefined);
|
141 | done();
|
142 | });
|
143 | });
|
144 | });
|