UNPKG

2.33 kBJavaScriptView Raw
1var test = require('tape');
2var concat = require('concat-stream');
3var quote = require('quote-stream');
4var staticModule = require('../');
5var fs = require('fs');
6var path = require('path');
7
8test('many instances', function (t) {
9 t.plan(2);
10
11 var sm = staticModule({
12 fs: { readFileSync: function (file) {
13 return fs.createReadStream(file).pipe(quote());
14 } }
15 }, { vars: { __dirname: path.join(__dirname, 'many') } });
16 readStream('source.js').pipe(sm).pipe(concat(function (body) {
17 Function(['console'],body)({ log: log });
18 t.equal(
19 body.toString('utf8'),
20 '\nvar a = "A!\\n";\n'
21 + 'var b = "B!\\n";\n'
22 + 'var c = "C!\\n";\n'
23 + 'console.log(a + b + c);\n'
24 );
25 function log (msg) { t.equal(msg, 'A!\nB!\nC!\n') }
26 }));
27});
28
29test('expansions inline', function (t) {
30 t.plan(2);
31
32 var sm = staticModule({
33 fs: { readFileSync: function (file) {
34 return fs.createReadStream(file).pipe(quote());
35 } }
36 }, { vars: { __dirname: path.join(__dirname, 'many') } });
37 readStream('inline.js').pipe(sm).pipe(concat(function (body) {
38 Function(['console'],body)({ log: log });
39 t.equal(
40 body.toString('utf8'),
41 '\nvar a = "A!\\n",\n'
42 + ' b = "B!\\n",\n'
43 + ' c = "C!\\n"\n'
44 + ';\n'
45 + 'console.log(a + b + c);\n'
46 );
47 function log (msg) { t.equal(msg, 'A!\nB!\nC!\n') }
48 }));
49});
50
51test('all inline', function (t) {
52 t.plan(2);
53
54 var sm = staticModule({
55 fs: { readFileSync: function (file) {
56 return fs.createReadStream(file).pipe(quote());
57 } }
58 }, { vars: { __dirname: path.join(__dirname, 'many') } });
59 readStream('all_inline.js').pipe(sm).pipe(concat(function (body) {
60 Function(['console'],body)({ log: log });
61 t.equal(
62 body.toString('utf8').replace(/;/g,''),
63 'var a = "A!\\n",\n'
64 + ' b = "B!\\n",\n'
65 + ' c = "C!\\n"\n'
66 + 'console.log(a + b + c)\n'
67 );
68 function log (msg) { t.equal(msg, 'A!\nB!\nC!\n') }
69 }));
70});
71
72function readStream (file) {
73 return fs.createReadStream(path.join(__dirname, 'many', file));
74}