UNPKG

2.42 kBJavaScriptView Raw
1var falafel = require('falafel');
2var tape = require('../');
3var tap = require('tap');
4var concat = require('concat-stream');
5
6var stripFullStack = require('./common').stripFullStack;
7
8tap.test('array test', function (tt) {
9 tt.plan(1);
10
11 var test = tape.createHarness({ exit : false });
12 var tc = function (rows) {
13 tt.same(stripFullStack(rows.toString('utf8')), [
14 'TAP version 13',
15 '# array',
16 'ok 1 should be equivalent',
17 'ok 2 should be equivalent',
18 'ok 3 should be equivalent',
19 'ok 4 should be equivalent',
20 'not ok 5 should be equivalent',
21 ' ---',
22 ' operator: deepEqual',
23 ' expected: [ [ 1, 2, [ 3, 4444 ] ], [ 5, 6 ] ]',
24 ' actual: [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ]',
25 ' at: <anonymous> ($TEST/fail.js:$LINE:$COL)',
26 ' stack: |-',
27 ' Error: should be equivalent',
28 ' [... stack stripped ...]',
29 ' at $TEST/fail.js:$LINE:$COL',
30 ' at eval (eval at <anonymous> ($TEST/fail.js:$LINE:$COL))',
31 ' at eval (eval at <anonymous> ($TEST/fail.js:$LINE:$COL))',
32 ' at Test.<anonymous> ($TEST/fail.js:$LINE:$COL)',
33 ' [... stack stripped ...]',
34 ' ...',
35 '',
36 '1..5',
37 '# tests 5',
38 '# pass 4',
39 '# fail 1',
40 ''
41 ].join('\n'));
42 };
43
44 test.createStream().pipe(concat(tc));
45
46 test('array', function (t) {
47 t.plan(5);
48
49 var src = '(' + function () {
50 var xs = [ 1, 2, [ 3, 4 ] ];
51 var ys = [ 5, 6 ];
52 g([ xs, ys ]);
53 } + ')()';
54
55 var output = falafel(src, function (node) {
56 if (node.type === 'ArrayExpression') {
57 node.update('fn(' + node.source() + ')');
58 }
59 });
60
61 var arrays = [
62 [ 3, 4 ],
63 [ 1, 2, [ 3, 4 ] ],
64 [ 5, 6 ],
65 [ [ 1, 2, [ 3, 4 ] ], [ 5, 6 ] ],
66 ];
67
68 Function(['fn','g'], output)(
69 function (xs) {
70 t.same(arrays.shift(), xs);
71 return xs;
72 },
73 function (xs) {
74 t.same(xs, [ [ 1, 2, [ 3, 4444 ] ], [ 5, 6 ] ]);
75 }
76 );
77 });
78});