UNPKG

4.92 kBJavaScriptView Raw
1/**
2 * test main file
3 * @author jero
4 * @date 2015-09-12
5 */
6
7
8var path = require('path');
9var fs = require('fs');
10var fis = require('fis3');
11var _ = fis.util;
12var expect = require('chai').expect;
13var _release = fis.require('command-release/lib/release.js');
14var _deploy = fis.require('command-release/lib/deploy.js');
15var root = path.join(__dirname, 'src');
16
17fis.project.setProjectRoot(root);
18var _self = require('../index');
19
20function release(opts, cb) {
21 opts = opts || {};
22
23 _release(opts, function(error, info) {
24 _deploy(info, cb);
25 });
26}
27
28describe('fis3-hook-lego findup & autoLoad', function() {
29
30
31 beforeEach(function() {
32 var dev = path.join(__dirname, 'dev');
33
34 _.del(dev);
35
36
37 // fis.log.level = fis.log.L_ALL;
38 _self.options = {
39 cssInline: false
40 };
41 fis.match('::package', {
42 packager: _self
43 });
44
45 fis.match('*', {
46 deploy: fis.plugin('local-deliver', {
47 to: dev
48 })
49 });
50
51 fis.hook('commonjs');
52 fis.hook('lego');
53
54
55 fis.match(/^\/modules\/(.+)\.js$/, {
56 isMod: true,
57 id: '$1'
58 })
59 .match(/^\/modules\/((?:[^\/]+\/)*)([^\/]+)\/\2\.(js)$/i, {
60 // isMod: true,
61 id: '$1$2'
62 })
63 .match(/^\/lego_modules\/(.+)\.js$/i, {
64 isMod: true,
65 id: '$1'
66 });
67
68 fis.match(/^\/(pages\/.+)\.js$/, {
69 isMod: true,
70 id: '$1'
71 });
72
73 });
74
75 it('lego hook', function(done) {
76 fis.on('release:end', function(ret) {
77
78
79 expect(2).to.equal(2);
80 });
81
82
83 release({
84 unique: true
85 }, function() {
86 done();
87 fis.log.info('release complete');
88 });
89 });
90});
91
92
93describe('fis3-packager-smart pack', function() {
94
95
96 beforeEach(function() {
97 var dist = path.join(__dirname, 'dist');
98
99 _.del(dist);
100
101
102 // fis.log.level = fis.log.L_ALL;
103
104 _self.options = {
105 autoPack: true,
106 cssInline: true
107 };
108
109 fis.match('::package', {
110 packager: _self
111 });
112
113 fis.match('*', {
114 deploy: fis.plugin('local-deliver', {
115 to: dist
116 })
117 });
118
119 fis.hook('commonjs');
120
121
122 fis.match(/^\/modules\/(.+)\.js$/, {
123 isMod: true,
124 id: '$1'
125 })
126 .match(/^\/modules\/((?:[^\/]+\/)*)([^\/]+)\/\2\.(js)$/i, {
127 // isMod: true,
128 id: '$1$2'
129 })
130 .match(/^\/lego_modules\/(.+)\.js$/i, {
131 isMod: true,
132 id: '$1'
133 });
134
135 fis.match(/^\/(pages\/.+)\.js$/, {
136 isMod: true,
137 id: '$1'
138 });
139
140 });
141
142 it('lego hook', function(done) {
143
144 release({
145 unique: true
146 }, function() {
147 expect(fs.existsSync(path.join(root, '../dist', 'pkg/common_min.js'))).to.be.true;
148 expect(fs.existsSync(path.join(root, '../dist', 'pkg/pages/index/main_min.js'))).to.be.true;
149 expect(fs.existsSync(path.join(root, '../dist', 'pkg/pages/index/main_async_min.js'))).to.be.true;
150 done();
151 fis.log.info('release complete');
152 });
153 });
154});
155
156
157// 所有js打包成一个文件
158describe('fis3-packager-smart pack - jsAllInOne', function() {
159
160 var dist = path.join(__dirname, 'allInOne');
161 beforeEach(function() {
162
163
164 _.del(dist);
165
166 _self.options = {
167 autoPack: true,
168 cssInline: true,
169 jsAllInOne: true
170 };
171
172 fis.match('::package', {
173 packager: _self
174 });
175
176 fis.match('*', {
177 deploy: fis.plugin('local-deliver', {
178 to: dist
179 })
180 });
181
182 fis.hook('commonjs');
183
184
185 fis.match(/^\/modules\/(.+)\.js$/, {
186 isMod: true,
187 id: '$1'
188 })
189 .match(/^\/modules\/((?:[^\/]+\/)*)([^\/]+)\/\2\.(js)$/i, {
190 // isMod: true,
191 id: '$1$2'
192 })
193 .match(/^\/lego_modules\/(.+)\.js$/i, {
194 isMod: true,
195 id: '$1'
196 });
197
198 fis.match(/^\/(pages\/.+)\.js$/, {
199 isMod: true,
200 id: '$1'
201 });
202
203 });
204
205 it('lego hook', function(done) {
206
207 release({
208 unique: true
209 }, function() {
210 expect(fs.existsSync(path.join(dist, 'pkg/index.html_aio.js'))).to.be.true;
211 var content = fs.readFileSync(path.join(dist, 'index.html'));
212 expect(/<script\ssrc=\"\/pkg\/index\.html_aio\.js\"><\/script>/.test(content)).to.be.true;
213 done();
214 fis.log.info('release complete');
215 });
216 });
217});
\No newline at end of file