Skip to content

Commit b47b404

Browse files
committed
Use jest tests for fs-ignore.test.ts
1 parent f768aa1 commit b47b404

File tree

1 file changed

+107
-64
lines changed

1 file changed

+107
-64
lines changed
Lines changed: 107 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,110 @@
1-
import * as path from 'path';
2-
import { nodeunitShim, Test } from 'nodeunit-shim';
31
import { IgnoreStrategy } from '../../lib/fs';
42

5-
nodeunitShim({
6-
globIgnorePattern: {
7-
'excludes nothing by default'(test: Test) {
8-
const ignore = IgnoreStrategy.glob('/tmp', []);
9-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'file', 'path')));
10-
test.done();
11-
},
12-
13-
'excludes requested files'(test: Test) {
14-
const ignore = IgnoreStrategy.glob('/tmp', ['*.ignored']);
15-
test.ok(ignore.ignores(path.join('/tmp', 'some', 'file.ignored')));
16-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'important', 'file')));
17-
test.done();
18-
},
19-
20-
'does not exclude whitelisted files'(test: Test) {
21-
const ignore = IgnoreStrategy.glob('/tmp', ['*.ignored', '!important.*']);
22-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'important.ignored')));
23-
test.done();
24-
},
25-
},
26-
gitIgnorePattern: {
27-
'excludes nothing by default'(test: Test) {
28-
const ignore = IgnoreStrategy.git('/tmp', []);
29-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'file', 'path')));
30-
test.done();
31-
},
32-
33-
'excludes requested files'(test: Test) {
34-
const ignore = IgnoreStrategy.git('/tmp', ['*.ignored']);
35-
test.ok(ignore.ignores(path.join('/tmp', 'some', 'file.ignored')));
36-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'important', 'file')));
37-
test.done();
38-
},
39-
40-
'does not exclude whitelisted files'(test: Test) {
41-
const ignore = IgnoreStrategy.git('/tmp', ['*.ignored', '!important.*']);
42-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'important.ignored')));
43-
test.done();
44-
},
45-
},
46-
dockerIgnorePattern: {
47-
'excludes nothing by default'(test: Test) {
48-
const ignore = IgnoreStrategy.docker('/tmp', []);
49-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'file', 'path')));
50-
test.done();
51-
},
52-
53-
'excludes requested files'(test: Test) {
54-
// In .dockerignore, * only matches files in the current directory
55-
const ignore = IgnoreStrategy.docker('/tmp', ['*.ignored']);
56-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'file.ignored')));
57-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'important', 'file')));
58-
test.done();
59-
},
60-
61-
'does not exclude whitelisted files'(test: Test) {
62-
const ignore = IgnoreStrategy.docker('/tmp', ['*.ignored', '!important.*']);
63-
test.ok(!ignore.ignores(path.join('/tmp', 'some', 'important.ignored')));
64-
test.done();
65-
},
66-
},
3+
function strategyIgnores(strategy: IgnoreStrategy, files: string[]) {
4+
return files.filter(file => strategy.ignores(file));
5+
}
6+
7+
function strategyPermits(strategy: IgnoreStrategy, files: string[]) {
8+
return files.filter(file => !strategy.ignores(file));
9+
}
10+
11+
describe('GlobIgnoreStrategy', () => {
12+
test('excludes nothing by default', () => {
13+
const strategy = IgnoreStrategy.glob('/tmp', []);
14+
const permits = [
15+
'/tmp/some/file/path',
16+
];
17+
18+
expect(strategyPermits(strategy, permits)).toEqual(permits);
19+
});
20+
21+
test('excludes requested files', () => {
22+
const strategy = IgnoreStrategy.glob('/tmp', ['*.ignored']);
23+
const ignores = [
24+
'/tmp/some/file.ignored',
25+
];
26+
const permits = [
27+
'/tmp/some/important/file',
28+
];
29+
30+
expect(strategyIgnores(strategy, ignores)).toEqual(ignores);
31+
expect(strategyPermits(strategy, permits)).toEqual(permits);
32+
});
33+
34+
test('does not exclude whitelisted files', () => {
35+
const strategy = IgnoreStrategy.glob('/tmp', ['*.ignored', '!important.*']);
36+
const permits = [
37+
'/tmp/some/important.ignored',
38+
];
39+
40+
expect(strategyPermits(strategy, permits)).toEqual(permits);
41+
});
42+
});
43+
44+
describe('GitIgnoreStrategy', () => {
45+
test('excludes nothing by default', () => {
46+
const strategy = IgnoreStrategy.git('/tmp', []);
47+
const permits = [
48+
'/tmp/some/file/path',
49+
];
50+
51+
expect(strategyPermits(strategy, permits)).toEqual(permits);
52+
});
53+
54+
test('excludes requested files', () => {
55+
const strategy = IgnoreStrategy.git('/tmp', ['*.ignored']);
56+
const ignores = [
57+
'/tmp/some/file.ignored',
58+
];
59+
const permits = [
60+
'/tmp/some/important/file',
61+
];
62+
63+
expect(strategyIgnores(strategy, ignores)).toEqual(ignores);
64+
expect(strategyPermits(strategy, permits)).toEqual(permits);
65+
});
66+
67+
test('does not exclude whitelisted files', () => {
68+
const strategy = IgnoreStrategy.git('/tmp', ['*.ignored', '!important.*']);
69+
const permits = [
70+
'/tmp/some/important.ignored',
71+
];
72+
73+
expect(strategyPermits(strategy, permits)).toEqual(permits);
74+
});
75+
});
76+
77+
describe('DockerIgnoreStrategy', () => {
78+
test('excludes nothing by default', () => {
79+
const strategy = IgnoreStrategy.docker('/tmp', []);
80+
const permits = [
81+
'/tmp/some/file/path',
82+
];
83+
84+
expect(strategyPermits(strategy, permits)).toEqual(permits);
85+
});
86+
87+
test('excludes requested files', () => {
88+
// In .dockerignore, * only matches files in the current directory
89+
const strategy = IgnoreStrategy.docker('/tmp', ['*.ignored']);
90+
const ignores = [
91+
'/tmp/file.ignored',
92+
];
93+
const permits = [
94+
'/tmp/some/file.ignored',
95+
'/tmp/some/important/file',
96+
];
97+
98+
expect(strategyIgnores(strategy, ignores)).toEqual(ignores);
99+
expect(strategyPermits(strategy, permits)).toEqual(permits);
100+
});
101+
102+
test('does not exclude whitelisted files', () => {
103+
const strategy = IgnoreStrategy.docker('/tmp', ['*.ignored', '!important.*']);
104+
const permits = [
105+
'/tmp/some/important.ignored',
106+
];
107+
108+
expect(strategyPermits(strategy, permits)).toEqual(permits);
109+
});
67110
});

0 commit comments

Comments
 (0)