UNPKG

2.76 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('multi-vars', function (t) {
9 t.plan(2);
10
11 var expected = [ 'beep boop!' ];
12 var sm = staticModule({
13 fs: {
14 readFileSync: function (file, enc) {
15 return fs.createReadStream(file).pipe(quote());
16 }
17 }
18 }, { vars: { __dirname: path.join(__dirname, 'vars') } });
19
20 readStream('source.js').pipe(sm).pipe(concat(function (body) {
21 t.equal(
22 body.toString('utf8').replace(/;/g,''),
23 'var html = "beep boop",\n x = \'!\'\nconsole.log(html + x)\n'
24 );
25 Function(['console'],body)({ log: log });
26 function log (msg) { t.equal(msg, expected.shift()) }
27 }));
28});
29
30test('2-var', function (t) {
31 t.plan(2);
32
33 var expected = [ 'beep boop' ];
34 var sm = staticModule({
35 fs: {
36 readFileSync: function (file, enc) {
37 return fs.createReadStream(file).pipe(quote());
38 }
39 }
40 }, { vars: { __dirname: path.join(__dirname, 'vars') } });
41
42 readStream('one.js').pipe(sm).pipe(concat(function (body) {
43 t.equal(
44 body.toString('utf8').replace(/;/g,''),
45 'var html = "beep boop"\nconsole.log(html)\n'
46 );
47 Function(['console'],body)({ log: log });
48 function log (msg) { t.equal(msg, expected.shift()) }
49 }));
50});
51
52test('5-var', function (t) {
53 t.plan(1);
54
55 var expected = [ 'beep boop123' ];
56 var sm = staticModule({
57 fs: {
58 readFileSync: function (file, enc) {
59 return fs.createReadStream(file).pipe(quote());
60 }
61 }
62 }, { vars: { __dirname: path.join(__dirname, 'vars') } });
63
64 readStream('five.js').pipe(sm).pipe(concat(function (body) {
65 Function(['console'],body)({ log: log });
66 function log (msg) { t.equal(msg, expected.shift()) }
67 }));
68});
69
70test('multi consecutive require vars', function (t) {
71 t.plan(1);
72
73 var expected = [ 'beep boop' ];
74 var sm = staticModule({
75 fs: {
76 readFileSync: function (file, enc) {
77 return fs.createReadStream(file).pipe(quote());
78 }
79 }
80 }, { vars: { __dirname: path.join(__dirname, 'vars') } });
81
82 readStream('multi-require.js').pipe(sm).pipe(concat(function (body) {
83 Function(['console','require'],body)({ log: log }, function() { return {} });
84 function log (msg) { t.equal(msg, expected.shift()) }
85 }));
86});
87
88function readStream (file) {
89 return fs.createReadStream(path.join(__dirname, 'vars', file));
90}