@@ -309,6 +309,63 @@ test('incorrect main', function (t) {
309
309
t . end ( ) ;
310
310
} ) ;
311
311
312
+ test ( 'missing index' , function ( t ) {
313
+ t . plan ( requireResolveSupportsPaths ? 2 : 1 ) ;
314
+
315
+ var resolverDir = path . join ( __dirname , 'resolver' ) ;
316
+ try {
317
+ resolve . sync ( './missing_index' , { basedir : resolverDir } ) ;
318
+ t . fail ( 'did not fail' ) ;
319
+ } catch ( err ) {
320
+ t . equal ( err && err . code , 'INCORRECT_PACKAGE_MAIN' , 'error has correct error code' ) ;
321
+ }
322
+ if ( requireResolveSupportsPaths ) {
323
+ try {
324
+ require . resolve ( './missing_index' , { basedir : resolverDir } ) ;
325
+ t . fail ( 'require.resolve did not fail' ) ;
326
+ } catch ( err ) {
327
+ t . equal ( err && err . code , 'MODULE_NOT_FOUND' , 'error has correct error code' ) ;
328
+ }
329
+ }
330
+ } ) ;
331
+
332
+ test ( 'missing main' , function ( t ) {
333
+ var resolverDir = path . join ( __dirname , 'resolver' ) ;
334
+ var dir = path . join ( resolverDir , 'missing_main' ) ;
335
+
336
+ t . equal (
337
+ resolve . sync ( './missing_main' , { basedir : resolverDir } ) ,
338
+ path . join ( dir , 'index.js' )
339
+ ) ;
340
+ if ( requireResolveSupportsPaths ) {
341
+ t . equal (
342
+ resolve . sync ( './missing_main' , { basedir : resolverDir } ) ,
343
+ require . resolve ( './missing_main' , { paths : [ resolverDir ] } ) ,
344
+ '"main" missing: resolve.sync === require.resolve'
345
+ ) ;
346
+ }
347
+
348
+ t . end ( ) ;
349
+ } ) ;
350
+
351
+ test ( 'null main' , function ( t ) {
352
+ var resolverDir = path . join ( __dirname , 'resolver' ) ;
353
+ var dir = path . join ( resolverDir , 'null_main' ) ;
354
+
355
+ t . equal (
356
+ resolve . sync ( './null_main' , { basedir : resolverDir } ) ,
357
+ path . join ( dir , 'index.js' )
358
+ ) ;
359
+ if ( requireResolveSupportsPaths ) {
360
+ t . equal (
361
+ resolve . sync ( './null_main' , { basedir : resolverDir } ) ,
362
+ require . resolve ( './null_main' , { paths : [ resolverDir ] } ) ,
363
+ '`"main": null`: resolve.sync === require.resolve'
364
+ ) ;
365
+ }
366
+
367
+ t . end ( ) ;
368
+ } ) ;
312
369
var stubStatSync = function stubStatSync ( fn ) {
313
370
var statSync = fs . statSync ;
314
371
try {
0 commit comments