@@ -292,6 +292,7 @@ t.test('weird hosted that doesnt provide .git()', t => {
292
292
spec . hosted = {
293
293
git ( ) { return null } ,
294
294
tarball ( ) { return null } ,
295
+ shortcut ( ) { return `weird:${ remote } ` } ,
295
296
}
296
297
const r = new GitFetcher ( spec , { cache} )
297
298
return t . rejects ( r . resolve ( ) , {
@@ -300,66 +301,79 @@ t.test('weird hosted that doesnt provide .git()', t => {
300
301
} )
301
302
302
303
t . test ( 'extract from tarball from hosted git service' , t => {
303
- const spec = npa ( `repo@localhost:repo/x#${ REPO_HEAD } ` )
304
- const g = new GitFetcher ( spec , { cache} )
305
- return g . manifest ( ) . then ( m => t . match ( m , {
306
- name : 'repo' ,
307
- version : '1.0.0' ,
308
- description : 'just some random thing' ,
309
- devDependencies : {
310
- abbrev : abbrevSpec
311
- } ,
312
- scripts : { prepare : 'node prepare.js' , test : 'node index.js' } ,
313
- files : [ 'index.js' ] ,
314
- readme : 'some docs and some more docs' ,
315
- readmeFilename : 'README.md' ,
316
- _id : 'repo@1.0.0' ,
317
- _integrity : / ^ s h a 5 1 2 - / ,
318
- _resolved : `${ hostedUrl } /repo-HEAD.tgz` ,
319
- } ) )
320
- . then ( ( ) => g . packument ( ) )
321
- . then ( p => t . match ( p , {
322
- name : 'repo' ,
323
- 'dist-tags' : { latest : '1.0.0' } ,
324
- versions : {
325
- '1.0.0' : {
326
- name : 'repo' ,
327
- version : '1.0.0' ,
328
- description : 'just some random thing' ,
329
- devDependencies : {
330
- abbrev : abbrevSpec ,
331
- } ,
332
- scripts : { prepare : 'node prepare.js' , test : 'node index.js' } ,
333
- files : [ 'index.js' ] ,
334
- readme : 'some docs and some more docs' ,
335
- readmeFilename : 'README.md' ,
336
- _id : 'repo@1.0.0' ,
337
- _integrity : / ^ s h a 5 1 2 - / ,
338
- _resolved : `${ hostedUrl } /repo-HEAD.tgz` ,
339
- dist : { } ,
304
+ const runTest = nameat => t => {
305
+ const spec = npa ( `${ nameat } localhost:repo/x#${ REPO_HEAD } ` )
306
+ const g = new GitFetcher ( spec , { cache} )
307
+ return g . manifest ( ) . then ( m => t . match ( m , {
308
+ name : 'repo' ,
309
+ version : '1.0.0' ,
310
+ description : 'just some random thing' ,
311
+ devDependencies : {
312
+ abbrev : abbrevSpec
313
+ } ,
314
+ scripts : { prepare : 'node prepare.js' , test : 'node index.js' } ,
315
+ files : [ 'index.js' ] ,
316
+ readme : 'some docs and some more docs' ,
317
+ readmeFilename : 'README.md' ,
318
+ _id : 'repo@1.0.0' ,
319
+ _integrity : / ^ s h a 5 1 2 - / ,
320
+ _resolved : `${ remoteHosted } #${ REPO_HEAD } ` ,
321
+ } ) )
322
+ . then ( ( ) => g . packument ( ) )
323
+ . then ( p => t . match ( p , {
324
+ name : 'repo' ,
325
+ 'dist-tags' : { latest : '1.0.0' } ,
326
+ versions : {
327
+ '1.0.0' : {
328
+ name : 'repo' ,
329
+ version : '1.0.0' ,
330
+ description : 'just some random thing' ,
331
+ devDependencies : {
332
+ abbrev : abbrevSpec ,
333
+ } ,
334
+ scripts : { prepare : 'node prepare.js' , test : 'node index.js' } ,
335
+ files : [ 'index.js' ] ,
336
+ readme : 'some docs and some more docs' ,
337
+ readmeFilename : 'README.md' ,
338
+ _id : 'repo@1.0.0' ,
339
+ _integrity : / ^ s h a 5 1 2 - / ,
340
+ _resolved : `${ remoteHosted } #${ REPO_HEAD } ` ,
341
+ dist : { } ,
342
+ }
340
343
}
341
- }
342
- } ) )
343
- . then ( ( ) => g . extract ( me + '/hosted' ) )
344
- . then ( ( ) => {
345
- t . throws ( ( ) => fs . statSync ( me + '/hosted/prepare.js' ) )
346
- fs . statSync ( me + '/hosted/index.js' )
347
- } )
344
+ } ) )
345
+ . then ( ( ) => g . extract ( me + '/hosted' ) )
346
+ . then ( result => {
347
+ t . throws ( ( ) => fs . statSync ( me + '/hosted/prepare.js' ) )
348
+ fs . statSync ( me + '/hosted/index.js' )
349
+ } )
350
+ }
351
+
352
+ t . plan ( 2 )
353
+ t . test ( 'with repo@ on the spec' , runTest ( 'repo@' ) )
354
+ t . test ( 'without repo@on the spec' , runTest ( '' ) )
348
355
} )
349
356
350
357
t . test ( 'add git sha to hosted git shorthand' , t =>
351
358
new GitFetcher ( 'localhost:repo/x' , { cache} )
352
- . resolve ( ) . then ( r => t . equal ( r , `${ hostedUrl } /repo-HEAD.tgz ` ) ) )
359
+ . resolve ( ) . then ( r => t . equal ( r , `${ remoteHosted } # ${ REPO_HEAD } ` ) ) )
353
360
354
361
t . test ( 'fetch a weird ref' , t => {
362
+ let head3 = ''
355
363
t . test ( 'hosted' , t =>
356
364
new GitFetcher ( 'localhost:repo/x#HEAD~3' , { cache} ) . extract ( me + '/h3h' )
357
- . then ( result => t . equal ( result . resolved , `${ hostedUrl } /repo-HEAD.tgz` ) ) )
365
+ . then ( result => {
366
+ head3 = result . resolved . split ( '#' ) . pop ( )
367
+ t . match ( result . resolved , / ^ g i t : \/ \/ 1 2 7 \. 0 \. 0 \. 1 : [ 0 - 9 ] + \/ r e p o # [ a - z 0 - 9 ] { 40 } $ / ,
368
+ 'got git url as resolved value' )
369
+ t . notEqual ( result . resolved , `${ remoteHosted } #${ REPO_HEAD } ` ,
370
+ 'git url for HEAD~3 is not the same as HEAD' )
371
+ } ) )
358
372
359
373
t . test ( 'reglar' , t =>
360
374
new GitFetcher ( `${ remote } #HEAD~3` , { cache} ) . extract ( me + '/h3r' )
361
- . then ( result => t . notEqual ( result . resolved ,
362
- ` ${ remote } # ${ REPO_HEAD } ` , 'something other than default head ') ) )
375
+ . then ( result => t . equal ( result . resolved , ` ${ remote } # ${ head3 } ` ,
376
+ 'got the same HEAD~3 sha as before ') ) )
363
377
364
378
t . end ( )
365
379
} )
0 commit comments