-
-
Notifications
You must be signed in to change notification settings - Fork 297
/
npmignore.js
74 lines (67 loc) · 2.52 KB
/
npmignore.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import path from 'path';
import test from 'ava';
import proxyquire from 'proxyquire';
const newFiles = [
'source/ignore.txt',
'source/pay_attention.txt',
'.hg',
'test/file.txt',
'readme.md',
'README.txt'
];
test('ignored files using file-attribute in package.json with one file', async t => {
const testedModule = proxyquire('../source/npm/util', {
'pkg-dir':
{
sync: () => path.resolve('test', 'fixtures', 'package')
}
});
t.deepEqual(await testedModule.getNewAndUnpublishedFiles({files: ['pay_attention.txt']}, newFiles), ['source/ignore.txt']);
});
test('ignored file using file-attribute in package.json with directory', async t => {
const testedModule = proxyquire('../source/npm/util', {
'pkg-dir':
{
sync: () => path.resolve('test', 'fixtures', 'package')
}
});
t.deepEqual(await testedModule.getNewAndUnpublishedFiles({files: ['source']}, newFiles), []);
});
test('ignored test files using files attribute and directory structure in package.json', async t => {
const testedModule = proxyquire('../source/npm/util', {
'pkg-dir':
{
sync: () => path.resolve('test', 'fixtures', 'package')
}
});
t.deepEqual(await testedModule.getNewAndUnpublishedFiles({files: ['source'], directories: {test: 'test-tap'}}, newFiles), ['test/file.txt']);
t.deepEqual(await testedModule.getNewAndUnpublishedFiles({files: ['source'], directories: {test: ['test-tap']}}, newFiles), ['test/file.txt']);
});
test('ignored files using .npmignore', async t => {
const testedModule = proxyquire('../source/npm/util', {
'pkg-dir':
{
sync: () => path.resolve('test', 'fixtures', 'npmignore')
}
});
t.deepEqual(await testedModule.getNewAndUnpublishedFiles({name: 'npmignore'}, newFiles), ['source/ignore.txt']);
});
test('ignored test files using files attribute and .npmignore', async t => {
const testedModule = proxyquire('../source/npm/util', {
'pkg-dir':
{
sync: () => path.resolve('test', 'fixtures', 'npmignore')
}
});
t.deepEqual(await testedModule.getNewAndUnpublishedFiles({directories: {test: 'test-tap'}}, newFiles), ['source/ignore.txt', 'test/file.txt']);
t.deepEqual(await testedModule.getNewAndUnpublishedFiles({directories: {test: ['test-tap']}}, newFiles), ['source/ignore.txt', 'test/file.txt']);
});
test('ignore strategy is not used', async t => {
const testedModule = proxyquire('../source/npm/util', {
'pkg-dir':
{
sync: () => path.resolve('test', 'fixtures')
}
});
t.is(await testedModule.getNewAndUnpublishedFiles({name: 'no ignore strategy'}, newFiles), undefined);
});