@@ -15,10 +15,12 @@ const mockPacote = {
15
15
manifest : ( spec ) => {
16
16
if ( spec . type === 'directory' )
17
17
return pacote . manifest ( spec )
18
- return {
18
+ const m = {
19
19
name : spec . name || 'test-package' ,
20
20
version : spec . version || '1.0.0-test' ,
21
21
}
22
+ m . _id = `${ m . name } @${ m . version } `
23
+ return m
22
24
} ,
23
25
}
24
26
@@ -43,9 +45,8 @@ t.test('should pack current directory with no arguments', (t) => {
43
45
} )
44
46
const pack = new Pack ( npm )
45
47
46
- pack . exec ( [ ] , er => {
47
- if ( er )
48
- throw er
48
+ pack . exec ( [ ] , err => {
49
+ t . error ( err , { bail : true } )
49
50
50
51
const filename = `npm-${ require ( '../../package.json' ) . version } .tgz`
51
52
t . strictSame ( OUTPUT , [ [ filename ] ] )
@@ -79,9 +80,8 @@ t.test('should pack given directory', (t) => {
79
80
} )
80
81
const pack = new Pack ( npm )
81
82
82
- pack . exec ( [ testDir ] , er => {
83
- if ( er )
84
- throw er
83
+ pack . exec ( [ testDir ] , err => {
84
+ t . error ( err , { bail : true } )
85
85
86
86
const filename = 'my-cool-pkg-1.0.0.tgz'
87
87
t . strictSame ( OUTPUT , [ [ filename ] ] )
@@ -115,9 +115,8 @@ t.test('should pack given directory for scoped package', (t) => {
115
115
} )
116
116
const pack = new Pack ( npm )
117
117
118
- return pack . exec ( [ testDir ] , er => {
119
- if ( er )
120
- throw er
118
+ return pack . exec ( [ testDir ] , err => {
119
+ t . error ( err , { bail : true } )
121
120
122
121
const filename = 'cool-my-pkg-1.0.0.tgz'
123
122
t . strictSame ( OUTPUT , [ [ filename ] ] )
@@ -150,16 +149,47 @@ t.test('should log pack contents', (t) => {
150
149
} )
151
150
const pack = new Pack ( npm )
152
151
153
- pack . exec ( [ ] , er => {
154
- if ( er )
155
- throw er
152
+ pack . exec ( [ ] , err => {
153
+ t . error ( err , { bail : true } )
156
154
157
155
const filename = `npm-${ require ( '../../package.json' ) . version } .tgz`
158
156
t . strictSame ( OUTPUT , [ [ filename ] ] )
159
157
t . end ( )
160
158
} )
161
159
} )
162
160
161
+ t . test ( 'invalid packument' , ( t ) => {
162
+ const mockPacote = {
163
+ manifest : ( ) => {
164
+ return { }
165
+ } ,
166
+ }
167
+ const Pack = t . mock ( '../../lib/pack.js' , {
168
+ libnpmpack,
169
+ pacote : mockPacote ,
170
+ npmlog : {
171
+ notice : ( ) => { } ,
172
+ showProgress : ( ) => { } ,
173
+ clearProgress : ( ) => { } ,
174
+ } ,
175
+ } )
176
+ const npm = mockNpm ( {
177
+ config : {
178
+ unicode : true ,
179
+ json : true ,
180
+ 'dry-run' : true ,
181
+ } ,
182
+ output,
183
+ } )
184
+ const pack = new Pack ( npm )
185
+ pack . exec ( [ ] , err => {
186
+ t . match ( err , { message : 'Invalid package, must have name and version' } )
187
+
188
+ t . strictSame ( OUTPUT , [ ] )
189
+ t . end ( )
190
+ } )
191
+ } )
192
+
163
193
t . test ( 'workspaces' , ( t ) => {
164
194
const testDir = t . testdir ( {
165
195
'package.json' : JSON . stringify ( {
@@ -201,9 +231,8 @@ t.test('workspaces', (t) => {
201
231
const pack = new Pack ( npm )
202
232
203
233
t . test ( 'all workspaces' , ( t ) => {
204
- pack . execWorkspaces ( [ ] , [ ] , er => {
205
- if ( er )
206
- throw er
234
+ pack . execWorkspaces ( [ ] , [ ] , err => {
235
+ t . error ( err , { bail : true } )
207
236
208
237
t . strictSame ( OUTPUT , [
209
238
[ 'workspace-a-1.0.0.tgz' ] ,
@@ -214,9 +243,8 @@ t.test('workspaces', (t) => {
214
243
} )
215
244
216
245
t . test ( 'all workspaces, `.` first arg' , ( t ) => {
217
- pack . execWorkspaces ( [ '.' ] , [ ] , er => {
218
- if ( er )
219
- throw er
246
+ pack . execWorkspaces ( [ '.' ] , [ ] , err => {
247
+ t . error ( err , { bail : true } )
220
248
221
249
t . strictSame ( OUTPUT , [
222
250
[ 'workspace-a-1.0.0.tgz' ] ,
@@ -227,9 +255,8 @@ t.test('workspaces', (t) => {
227
255
} )
228
256
229
257
t . test ( 'one workspace' , ( t ) => {
230
- pack . execWorkspaces ( [ ] , [ 'workspace-a' ] , er => {
231
- if ( er )
232
- throw er
258
+ pack . execWorkspaces ( [ ] , [ 'workspace-a' ] , err => {
259
+ t . error ( err , { bail : true } )
233
260
234
261
t . strictSame ( OUTPUT , [
235
262
[ 'workspace-a-1.0.0.tgz' ] ,
@@ -239,9 +266,8 @@ t.test('workspaces', (t) => {
239
266
} )
240
267
241
268
t . test ( 'specific package' , ( t ) => {
242
- pack . execWorkspaces ( [ 'abbrev' ] , [ ] , er => {
243
- if ( er )
244
- throw er
269
+ pack . execWorkspaces ( [ 'abbrev' ] , [ ] , err => {
270
+ t . error ( err , { bail : true } )
245
271
246
272
t . strictSame ( OUTPUT , [
247
273
[ 'abbrev-1.0.0-test.tgz' ] ,
0 commit comments