@@ -309,6 +309,63 @@ test('incorrect main', function (t) {
309309 t . end ( ) ;
310310} ) ;
311311
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+ } ) ;
312369var stubStatSync = function stubStatSync ( fn ) {
313370 var statSync = fs . statSync ;
314371 try {
0 commit comments