UNPKG

3.13 kBJavaScriptView Raw
1var falafel = require('../');
2var test = require('tape');
3
4test('first opts arg', function (t) {
5 t.plan(5);
6
7 var src = '(function () {'
8 + 'var xs = [ 1, 2, [ 3, 4 ] ];'
9 + 'var ys = [ 5, 6 ];'
10 + 'g([ xs, ys ]);'
11 + '})()';
12
13 var output = falafel({ source: src }, function (node) {
14 if (node.type === 'ArrayExpression') {
15 node.update('fn(' + node.source() + ')');
16 }
17 });
18
19 var arrays = [
20 [ 3, 4 ],
21 [ 1, 2, [ 3, 4 ] ],
22 [ 5, 6 ],
23 [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ],
24 ];
25
26 Function(['fn','g'], output)(
27 function (xs) {
28 t.same(arrays.shift(), xs);
29 return xs;
30 },
31 function (xs) {
32 t.same(xs, [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ]);
33 }
34 );
35});
36
37test('opts.source', function (t) {
38 t.plan(5);
39
40 var src = '(function () {'
41 + 'var xs = [ 1, 2, [ 3, 4 ] ];'
42 + 'var ys = [ 5, 6 ];'
43 + 'g([ xs, ys ]);'
44 + '})()';
45
46 var output = falafel(undefined, { source: src }, function (node) {
47 if (node.type === 'ArrayExpression') {
48 node.update('fn(' + node.source() + ')');
49 }
50 });
51
52 var arrays = [
53 [ 3, 4 ],
54 [ 1, 2, [ 3, 4 ] ],
55 [ 5, 6 ],
56 [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ],
57 ];
58
59 Function(['fn','g'], output)(
60 function (xs) {
61 t.same(arrays.shift(), xs);
62 return xs;
63 },
64 function (xs) {
65 t.same(xs, [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ]);
66 }
67 );
68});
69
70test('Buffer opts.source', function (t) {
71 t.plan(5);
72
73 var src = Buffer('(function () {'
74 + 'var xs = [ 1, 2, [ 3, 4 ] ];'
75 + 'var ys = [ 5, 6 ];'
76 + 'g([ xs, ys ]);'
77 + '})()');
78
79 var output = falafel({ source: src }, function (node) {
80 if (node.type === 'ArrayExpression') {
81 node.update('fn(' + node.source() + ')');
82 }
83 });
84
85 var arrays = [
86 [ 3, 4 ],
87 [ 1, 2, [ 3, 4 ] ],
88 [ 5, 6 ],
89 [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ],
90 ];
91
92 Function(['fn','g'], output)(
93 function (xs) {
94 t.same(arrays.shift(), xs);
95 return xs;
96 },
97 function (xs) {
98 t.same(xs, [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ]);
99 }
100 );
101});
102
103test('Buffer source', function (t) {
104 t.plan(5);
105
106 var src = Buffer('(function () {'
107 + 'var xs = [ 1, 2, [ 3, 4 ] ];'
108 + 'var ys = [ 5, 6 ];'
109 + 'g([ xs, ys ]);'
110 + '})()');
111
112 var output = falafel(src, function (node) {
113 if (node.type === 'ArrayExpression') {
114 node.update('fn(' + node.source() + ')');
115 }
116 });
117
118 var arrays = [
119 [ 3, 4 ],
120 [ 1, 2, [ 3, 4 ] ],
121 [ 5, 6 ],
122 [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ],
123 ];
124
125 Function(['fn','g'], output)(
126 function (xs) {
127 t.same(arrays.shift(), xs);
128 return xs;
129 },
130 function (xs) {
131 t.same(xs, [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ]);
132 }
133 );
134});