@@ -1415,6 +1415,63 @@ describe("importsFieldPlugin", () => {
14151415 } ) ;
14161416 } ) ;
14171417
1418+ it ( "resolver should respect query parameters #1" , ( done ) => {
1419+ resolver . resolve ( { } , fixture , "#a/dist/main.js?foo" , { } , ( err , result ) => {
1420+ if ( err ) return done ( err ) ;
1421+ if ( ! result ) return done ( new Error ( "No result" ) ) ;
1422+ expect ( result ) . toEqual (
1423+ path . resolve ( fixture , "node_modules/a/lib/main.js?foo" ) ,
1424+ ) ;
1425+ done ( ) ;
1426+ } ) ;
1427+ } ) ;
1428+
1429+ it ( "resolver should respect query parameters #2. Direct matching" , ( done ) => {
1430+ resolver . resolve ( { } , fixture , "#imports-field?foo" , { } , ( err , result ) => {
1431+ if ( ! err ) return done ( new Error ( `expect error, got ${ result } ` ) ) ;
1432+ expect ( err ) . toBeInstanceOf ( Error ) ;
1433+ expect ( err . message ) . toMatch ( / i s n o t i m p o r t e d f r o m p a c k a g e / ) ;
1434+ done ( ) ;
1435+ } ) ;
1436+ } ) ;
1437+
1438+ it ( "resolver should respect fragment parameters #1" , ( done ) => {
1439+ resolver . resolve ( { } , fixture , "#a/dist/main.js#foo" , { } , ( err , result ) => {
1440+ if ( err ) return done ( err ) ;
1441+ if ( ! result ) return done ( new Error ( "No result" ) ) ;
1442+ expect ( result ) . toEqual (
1443+ path . resolve ( fixture , "node_modules/a/lib/main.js#foo" ) ,
1444+ ) ;
1445+ done ( ) ;
1446+ } ) ;
1447+ } ) ;
1448+
1449+ it ( "resolver should respect fragment parameters #2. Direct matching" , ( done ) => {
1450+ resolver . resolve ( { } , fixture , "#imports-field#foo" , { } , ( err , result ) => {
1451+ if ( ! err ) return done ( new Error ( `expect error, got ${ result } ` ) ) ;
1452+ expect ( err ) . toBeInstanceOf ( Error ) ;
1453+ expect ( err . message ) . toMatch ( / i s n o t i m p o r t e d f r o m p a c k a g e / ) ;
1454+ done ( ) ;
1455+ } ) ;
1456+ } ) ;
1457+
1458+ it ( "resolver should respect query and fragment parameters together" , ( done ) => {
1459+ resolver . resolve (
1460+ { } ,
1461+ fixture ,
1462+ "#a/dist/main.js?foo=bar#frag" ,
1463+ { } ,
1464+ ( err , result ) => {
1465+ if ( err ) return done ( err ) ;
1466+ if ( ! result ) return done ( new Error ( "No result" ) ) ;
1467+ expect ( result ) . toEqual (
1468+ path . resolve ( fixture , "node_modules/a/lib/main.js?foo=bar#frag" ) ,
1469+ ) ;
1470+ done ( ) ;
1471+ } ,
1472+ ) ;
1473+ } ) ;
1474+
14181475 it ( "should work and throw an error on invalid imports #1" , ( done ) => {
14191476 // Note: #/ patterns are now allowed per Node.js PR #60864
14201477 // #/dep will now try to resolve but fail because there's no mapping
0 commit comments