@@ -15,6 +15,70 @@ import {
15
15
chai . use ( chaiAsPromised )
16
16
chai . should ( )
17
17
18
+ // TODO: after #46 merged, use:
19
+ // const globPatternsPromise = setupSdk(FREE_API_KEY)
20
+ // .then(sdk => sdk.getReportSupportedFiles())
21
+ // .then(res => {
22
+ // if (!res.success) throw new Error('failed to get API supported files')
23
+ // return res.data
24
+ // })
25
+
26
+ const globPatternsPromise = Promise . resolve ( {
27
+ general : {
28
+ readme : {
29
+ pattern : '*readme*'
30
+ } ,
31
+ notice : {
32
+ pattern : '*notice*'
33
+ } ,
34
+ license : {
35
+ pattern : '{licen{s,c}e{,-*},copying}'
36
+ }
37
+ } ,
38
+ npm : {
39
+ packagejson : {
40
+ pattern : 'package.json'
41
+ } ,
42
+ packagelockjson : {
43
+ pattern : 'package-lock.json'
44
+ } ,
45
+ npmshrinkwrap : {
46
+ pattern : 'npm-shrinkwrap.json'
47
+ } ,
48
+ yarnlock : {
49
+ pattern : 'yarn.lock'
50
+ } ,
51
+ pnpmlock : {
52
+ pattern : 'pnpm-lock.yaml'
53
+ } ,
54
+ pnpmworkspace : {
55
+ pattern : 'pnpm-workspace.yaml'
56
+ }
57
+ } ,
58
+ pypi : {
59
+ pipfile : {
60
+ pattern : 'pipfile'
61
+ } ,
62
+ pyproject : {
63
+ pattern : 'pyproject.toml'
64
+ } ,
65
+ requirements : {
66
+ pattern :
67
+ '{*requirements.txt,requirements/*.txt,requirements-*.txt,requirements.frozen}'
68
+ } ,
69
+ setuppy : {
70
+ pattern : 'setup.py'
71
+ }
72
+ }
73
+ } )
74
+
75
+ /**
76
+ * @param {string } file
77
+ * @returns {Promise<string[]> }
78
+ */
79
+ const mapGlobEntry = async ( file ) =>
80
+ mapGlobEntryToFiles ( file , await globPatternsPromise )
81
+
18
82
describe ( 'Path Resolve' , ( ) => {
19
83
beforeEach ( ( ) => {
20
84
nock . cleanAll ( )
@@ -56,14 +120,14 @@ describe('Path Resolve', () => {
56
120
mockFs ( {
57
121
'/foo.txt' : 'some content' ,
58
122
} )
59
- await mapGlobEntryToFiles ( '/foo.txt' ) . should . eventually . become ( [ ] )
123
+ await mapGlobEntry ( '/foo.txt' ) . should . eventually . become ( [ ] )
60
124
} )
61
125
62
126
it ( 'should throw on errors' , async ( ) => {
63
127
mockFs ( {
64
128
'/package.json' : { /* Empty directory */ } ,
65
129
} )
66
- await mapGlobEntryToFiles ( '/' )
130
+ await mapGlobEntry ( '/' )
67
131
. should . eventually . be . rejectedWith ( InputError , 'Expected \'/package.json\' to be a file' )
68
132
} )
69
133
} )
@@ -74,7 +138,7 @@ describe('Path Resolve', () => {
74
138
'/package-lock.json' : '{}' ,
75
139
'/package.json' : '{}' ,
76
140
} )
77
- await mapGlobEntryToFiles ( '/' ) . should . eventually . become ( [
141
+ await mapGlobEntry ( '/' ) . should . eventually . become ( [
78
142
'/package.json' ,
79
143
'/package-lock.json'
80
144
] )
@@ -84,22 +148,22 @@ describe('Path Resolve', () => {
84
148
mockFs ( {
85
149
'/package.json' : '{}' ,
86
150
} )
87
- await mapGlobEntryToFiles ( '/' ) . should . eventually . become ( [ '/package.json' ] )
151
+ await mapGlobEntry ( '/' ) . should . eventually . become ( [ '/package.json' ] )
88
152
} )
89
153
90
154
it ( 'should not resolve lock file without package' , async ( ) => {
91
155
mockFs ( {
92
156
'/package-lock.json' : '{}' ,
93
157
} )
94
- await mapGlobEntryToFiles ( '/' ) . should . eventually . become ( [ ] )
158
+ await mapGlobEntry ( '/' ) . should . eventually . become ( [ ] )
95
159
} )
96
160
97
161
it ( 'should support alternative lock files' , async ( ) => {
98
162
mockFs ( {
99
163
'/yarn.lock' : '{}' ,
100
164
'/package.json' : '{}' ,
101
165
} )
102
- await mapGlobEntryToFiles ( '/' ) . should . eventually . become ( [
166
+ await mapGlobEntry ( '/' ) . should . eventually . become ( [
103
167
'/package.json' ,
104
168
'/yarn.lock'
105
169
] )
@@ -112,7 +176,7 @@ describe('Path Resolve', () => {
112
176
'/package-lock.json' : '{}' ,
113
177
'/package.json' : '{}' ,
114
178
} )
115
- await mapGlobEntryToFiles ( '/package.json' ) . should . eventually . become ( [
179
+ await mapGlobEntry ( '/package.json' ) . should . eventually . become ( [
116
180
'/package.json' ,
117
181
'/package-lock.json'
118
182
] )
@@ -122,19 +186,19 @@ describe('Path Resolve', () => {
122
186
mockFs ( {
123
187
'/package.json' : '{}' ,
124
188
} )
125
- await mapGlobEntryToFiles ( '/package.json' ) . should . eventually . become ( [ '/package.json' ] )
189
+ await mapGlobEntry ( '/package.json' ) . should . eventually . become ( [ '/package.json' ] )
126
190
} )
127
191
128
192
it ( 'should not validate the input file' , async ( ) => {
129
193
mockFs ( { } )
130
- await mapGlobEntryToFiles ( '/package.json' ) . should . eventually . become ( [ '/package.json' ] )
194
+ await mapGlobEntry ( '/package.json' ) . should . eventually . become ( [ '/package.json' ] )
131
195
} )
132
196
133
197
it ( 'should not validate the input file, but still add a complementary lock file' , async ( ) => {
134
198
mockFs ( {
135
199
'/package-lock.json' : '{}' ,
136
200
} )
137
- await mapGlobEntryToFiles ( '/package.json' ) . should . eventually . become ( [
201
+ await mapGlobEntry ( '/package.json' ) . should . eventually . become ( [
138
202
'/package.json' ,
139
203
'/package-lock.json'
140
204
] )
@@ -145,7 +209,7 @@ describe('Path Resolve', () => {
145
209
'/yarn.lock' : '{}' ,
146
210
'/package.json' : '{}' ,
147
211
} )
148
- await mapGlobEntryToFiles ( '/package.json' ) . should . eventually . become ( [
212
+ await mapGlobEntry ( '/package.json' ) . should . eventually . become ( [
149
213
'/package.json' ,
150
214
'/yarn.lock'
151
215
] )
@@ -158,15 +222,15 @@ describe('Path Resolve', () => {
158
222
'/package-lock.json' : '{}' ,
159
223
'/package.json' : '{}' ,
160
224
} )
161
- await mapGlobEntryToFiles ( '/package-lock.json' ) . should . eventually . become ( [
225
+ await mapGlobEntry ( '/package-lock.json' ) . should . eventually . become ( [
162
226
'/package.json' ,
163
227
'/package-lock.json'
164
228
] )
165
229
} )
166
230
167
231
it ( 'should assume input is correct and paired with package file' , async ( ) => {
168
232
mockFs ( { } )
169
- await mapGlobEntryToFiles ( '/package-lock.json' ) . should . eventually . become ( [
233
+ await mapGlobEntry ( '/package-lock.json' ) . should . eventually . become ( [
170
234
'/package.json' ,
171
235
'/package-lock.json'
172
236
] )
@@ -177,7 +241,7 @@ describe('Path Resolve', () => {
177
241
'/yarn.lock' : '{}' ,
178
242
'/package.json' : '{}' ,
179
243
} )
180
- await mapGlobEntryToFiles ( '/yarn.lock' ) . should . eventually . become ( [
244
+ await mapGlobEntry ( '/yarn.lock' ) . should . eventually . become ( [
181
245
'/package.json' ,
182
246
'/yarn.lock'
183
247
] )
0 commit comments