1 | var test = require('tape');
|
2 | var concat = require('concat-stream');
|
3 | var quote = require('quote-stream');
|
4 | var staticModule = require('../');
|
5 | var fs = require('fs');
|
6 | var path = require('path');
|
7 |
|
8 | test('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 |
|
29 | test('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 |
|
51 | test('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 |
|
72 | function readStream (file) {
|
73 | return fs.createReadStream(path.join(__dirname, 'many', file));
|
74 | }
|