UNPKG

3.9 kBJavaScriptView Raw
1'use strict';
2
3var tap = require('tap');
4var path = require('path');
5var spawn = require('child_process').spawn;
6var concat = require('concat-stream');
7
8var stripFullStack = require('./common').stripFullStack;
9
10var tapeBin = path.join(process.cwd(), 'bin/tape');
11
12tap.test('Should pass with ignoring', { skip: process.platform === 'win32' }, function (tt) {
13 tt.plan(2);
14
15 var tc = function (rows) {
16 tt.same(stripFullStack(rows.toString('utf8')), [
17 'TAP version 13',
18 '# (anonymous)',
19 'ok 1 should be truthy',
20 '# (anonymous)',
21 'ok 2 test/stub1',
22 '# (anonymous)',
23 'ok 3 test/stub2',
24 '# (anonymous)',
25 'ok 4 test/sub/stub1',
26 '# (anonymous)',
27 'ok 5 test/sub/stub2',
28 '# (anonymous)',
29 'ok 6 Should print',
30 '',
31 '1..6',
32 '# tests 6',
33 '# pass 6',
34 '',
35 '# ok',
36 '',
37 ''
38 ].join('\n'));
39 };
40
41 var ps = spawn(tapeBin, ['**/*.js', '-i', '.ignore'], {cwd: path.join(__dirname, 'ignore')});
42 ps.stdout.pipe(concat(tc));
43 ps.on('exit', function (code) {
44 tt.equal(code, 0); // code 0
45 });
46});
47
48tap.test('Should pass', { skip: process.platform === 'win32' }, function (tt) {
49 tt.plan(2);
50
51 var tc = function (rows) {
52 tt.same(stripFullStack(rows.toString('utf8')), [
53 'TAP version 13',
54 '# (anonymous)',
55 'not ok 1 Should not print',
56 ' ---',
57 ' operator: fail',
58 ' at: Test.<anonymous> ($TEST/ignore/fake_node_modules/stub1.js:$LINE:$COL)',
59 ' stack: |-',
60 ' Error: Should not print',
61 ' [... stack stripped ...]',
62 ' at Test.<anonymous> ($TEST/ignore/fake_node_modules/stub1.js:$LINE:$COL)',
63 ' [... stack stripped ...]',
64 ' ...',
65 '# (anonymous)',
66 'not ok 2 Should not print',
67 ' ---',
68 ' operator: fail',
69 ' at: Test.<anonymous> ($TEST/ignore/fake_node_modules/stub2.js:$LINE:$COL)',
70 ' stack: |-',
71 ' Error: Should not print',
72 ' [... stack stripped ...]',
73 ' at Test.<anonymous> ($TEST/ignore/fake_node_modules/stub2.js:$LINE:$COL)',
74 ' [... stack stripped ...]',
75 ' ...',
76 '# (anonymous)',
77 'ok 3 should be truthy',
78 '# (anonymous)',
79 'ok 4 test/stub1',
80 '# (anonymous)',
81 'ok 5 test/stub2',
82 '# (anonymous)',
83 'ok 6 test/sub/stub1',
84 '# (anonymous)',
85 'ok 7 test/sub/stub2',
86 '# (anonymous)',
87 'ok 8 Should print',
88 '',
89 '1..8',
90 '# tests 8',
91 '# pass 6',
92 '# fail 2',
93 '',
94 ''
95 ].join('\n'));
96 };
97
98 var ps = spawn(tapeBin, ['**/*.js'], {cwd: path.join(__dirname, 'ignore')});
99 ps.stdout.pipe(concat(tc));
100 ps.on('exit', function (code) {
101 tt.equal(code, 1);
102 });
103});
104
105tap.test('Should fail when ignore file does not exist', { skip: process.platform === 'win32' }, function (tt) {
106 tt.plan(3);
107
108 var testStdout = function (rows) {
109 tt.same(rows.toString('utf8'), '');
110 };
111
112 var testStderr = function (rows) {
113 tt.ok(/^ENOENT[:,] no such file or directory,? (?:open )?'\$TEST\/ignore\/.gitignore'\n$/m.test(stripFullStack(rows.toString('utf8'))));
114 };
115
116 var ps = spawn(tapeBin, ['**/*.js', '-i'], {cwd: path.join(__dirname, 'ignore')});
117 ps.stdout.pipe(concat(testStdout));
118 ps.stderr.pipe(concat(testStderr));
119 ps.on('exit', function (code) {
120 tt.equal(code, 2);
121 });
122});