UNPKG

5.25 kBJavaScriptView Raw
1var staticModule = require('../');
2var test = require('tape');
3var concat = require('concat-stream');
4var quote = require('quote-stream');
5var fs = require('fs');
6var path = require('path');
7var vm = require('vm');
8
9test('readFileSync', function (t) {
10 t.plan(2);
11 var sm = staticModule({
12 fs: {
13 readFileSync: function (file) {
14 return fs.createReadStream(file).pipe(quote());
15 }
16 }
17 }, { vars: { __dirname: path.join(__dirname, 'brfs') } });
18 readStream('source.js').pipe(sm).pipe(concat(function (body) {
19 t.equal(body.toString('utf8'),
20 '\nvar src = "beep boop\\n";'
21 + '\nconsole.log(src);\n'
22 );
23 vm.runInNewContext(body.toString('utf8'), {
24 console: { log: log }
25 });
26 function log (msg) { t.equal(msg, 'beep boop\n') }
27 }));
28});
29
30test('readFileSync attribute', function (t) {
31 t.plan(2);
32 var sm = staticModule({
33 fs: {
34 readFileSync: function (file) {
35 return fs.createReadStream(file).pipe(quote());
36 }
37 }
38 }, { vars: { __dirname: path.join(__dirname, 'brfs') } });
39 readStream('attribute.js').pipe(sm).pipe(concat(function (body) {
40 t.equal(body.toString('utf8'),
41 '\nvar src = "beep boop\\n";'
42 + '\nconsole.log(src);\n'
43 );
44 vm.runInNewContext(body.toString('utf8'), {
45 console: { log: log }
46 });
47 function log (msg) { t.equal(msg, 'beep boop\n') }
48 }));
49});
50
51test('readFileSync attribute with multiple vars', function (t) {
52 t.plan(2);
53 var sm = staticModule({
54 fs: {
55 readFileSync: function (file) {
56 return fs.createReadStream(file).pipe(quote());
57 }
58 }
59 }, { vars: { __dirname: path.join(__dirname, 'brfs') } });
60 readStream('attribute_vars.js').pipe(sm).pipe(concat(function (body) {
61 t.equal(body.toString('utf8'),
62 'var x = 5, y = 2;'
63 + '\nvar src = "beep boop\\n";'
64 + '\nconsole.log(src);\n'
65 );
66 vm.runInNewContext(body.toString('utf8'), {
67 console: { log: log }
68 });
69 function log (msg) { t.equal(msg, 'beep boop\n') }
70 }));
71});
72
73test('readFileSync attribute with multiple require vars', function (t) {
74 t.plan(2);
75 var sm = staticModule({
76 fs: {
77 readFileSync: function (file) {
78 return fs.createReadStream(file).pipe(quote());
79 }
80 }
81 }, { vars: { __dirname: path.join(__dirname, 'brfs') } });
82 readStream('multi_require.js').pipe(sm).pipe(concat(function (body) {
83 t.equal(body.toString('utf8'),
84 'var x = 5;'
85 + '\nvar src = "beep boop\\n";'
86 + '\nconsole.log(src);\n'
87 );
88 vm.runInNewContext(body.toString('utf8'), {
89 console: { log: log }
90 });
91 function log (msg) { t.equal(msg, 'beep boop\n') }
92 }));
93});
94
95test('readFileSync attribute with multiple require vars x5', function (t) {
96 t.plan(2);
97 var sm = staticModule({
98 fs: {
99 readFileSync: function (file) {
100 return fs.createReadStream(file).pipe(quote());
101 }
102 }
103 }, { vars: { __dirname: path.join(__dirname, 'brfs') } });
104 readStream('x5.js').pipe(sm).pipe(concat(function (body) {
105 t.equal(body.toString('utf8').replace(/;/g,''),
106 'var a = 1, b = 2, c = 3, d = 4, '
107 + 'src = "beep boop\\n",\n'
108 + ' e = 5\n'
109 + 'console.log(src)\n'
110 );
111 vm.runInNewContext(body.toString('utf8'), {
112 console: { log: log }
113 });
114 function log (msg) { t.equal(msg, 'beep boop\n') }
115 }));
116});
117
118test('readFileSync with bracket notation', function (t) {
119 t.plan(2);
120 var sm = staticModule({
121 fs: {
122 readFileSync: function (file) {
123 return fs.createReadStream(file).pipe(quote());
124 }
125 }
126 }, { vars: { __dirname: path.join(__dirname, 'brfs') } });
127 readStream('brackets.js').pipe(sm).pipe(concat(function (body) {
128 t.equal(body.toString('utf8'),
129 '\nvar src = "beep boop\\n";'
130 + '\nconsole.log(src);\n'
131 );
132 vm.runInNewContext(body.toString('utf8'), {
133 console: { log: log }
134 });
135 function log (msg) { t.equal(msg, 'beep boop\n') }
136 }));
137});
138
139test('readFileSync attribute bracket notation', function (t) {
140 t.plan(2);
141 var sm = staticModule({
142 fs: {
143 readFileSync: function (file) {
144 return fs.createReadStream(file).pipe(quote());
145 }
146 }
147 }, { vars: { __dirname: path.join(__dirname, 'brfs') } });
148 readStream('attribute_brackets.js').pipe(sm).pipe(concat(function (body) {
149 t.equal(body.toString('utf8'),
150 '\nvar src = "beep boop\\n";'
151 + '\nconsole.log(src);\n'
152 );
153 vm.runInNewContext(body.toString('utf8'), {
154 console: { log: log }
155 });
156 function log (msg) { t.equal(msg, 'beep boop\n') }
157 }));
158});
159
160function readStream (file) {
161 return fs.createReadStream(path.join(__dirname, 'brfs', file));
162}