1 | var staticModule = require('../');
|
2 | var test = require('tape');
|
3 | var concat = require('concat-stream');
|
4 | var quote = require('quote-stream');
|
5 | var fs = require('fs');
|
6 | var path = require('path');
|
7 | var vm = require('vm');
|
8 |
|
9 | test('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 |
|
30 | test('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 |
|
51 | test('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 |
|
73 | test('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 |
|
95 | test('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 |
|
118 | test('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 |
|
139 | test('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 |
|
160 | function readStream (file) {
|
161 | return fs.createReadStream(path.join(__dirname, 'brfs', file));
|
162 | }
|