@@ -72,28 +72,22 @@ describe("pnp", () => {
72
72
} ) ;
73
73
} ) ;
74
74
it ( "should resolve by going through the pnp api" , done => {
75
- pnpApi . mocks . set (
76
- "pkg/dir/index.js" ,
77
- path . resolve ( fixture , "pkg/dir/index.js" )
78
- ) ;
75
+ pnpApi . mocks . set ( "pkg" , path . resolve ( fixture , "pkg" ) ) ;
79
76
resolver . resolve ( { } , __dirname , "pkg/dir/index.js" , { } , ( err , result ) => {
80
77
if ( err ) return done ( err ) ;
81
78
result . should . equal ( path . resolve ( fixture , "pkg/dir/index.js" ) ) ;
82
79
done ( ) ;
83
80
} ) ;
84
81
} ) ;
85
82
it ( "should not resolve a not fully specified request when fullySpecified is set" , done => {
86
- pnpApi . mocks . set ( "pkg/dir/index " , path . resolve ( fixture , "pkg/dir/index " ) ) ;
83
+ pnpApi . mocks . set ( "pkg" , path . resolve ( fixture , "pkg" ) ) ;
87
84
resolver . resolve ( { } , __dirname , "pkg/dir/index" , { } , ( err , result ) => {
88
85
err . should . be . instanceof ( Error ) ;
89
86
done ( ) ;
90
87
} ) ;
91
88
} ) ;
92
89
it ( "should track dependency to the pnp api" , done => {
93
- pnpApi . mocks . set (
94
- "pkg/dir/index.js" ,
95
- path . resolve ( fixture , "pkg/dir/index.js" )
96
- ) ;
90
+ pnpApi . mocks . set ( "pkg" , path . resolve ( fixture , "pkg" ) ) ;
97
91
pnpApi . mocks . set ( "pnpapi" , path . resolve ( fixture , ".pnp.js" ) ) ;
98
92
const fileDependencies = new Set ( ) ;
99
93
resolver . resolve (
@@ -131,7 +125,7 @@ describe("pnp", () => {
131
125
"should not resolve symlinks" ,
132
126
isAdmin
133
127
? done => {
134
- pnpApi . mocks . set ( "pkg/symlink " , path . resolve ( fixture , "pkg/symlink " ) ) ;
128
+ pnpApi . mocks . set ( "pkg" , path . resolve ( fixture , "pkg" ) ) ;
135
129
resolverFuzzy . resolve (
136
130
{ } ,
137
131
__dirname ,
@@ -149,10 +143,7 @@ describe("pnp", () => {
149
143
: undefined
150
144
) ;
151
145
it ( "should properly deal with other extensions" , done => {
152
- pnpApi . mocks . set (
153
- "@user/pkg/typescript" ,
154
- path . resolve ( fixture , "pkg/typescript" )
155
- ) ;
146
+ pnpApi . mocks . set ( "@user/pkg" , path . resolve ( fixture , "pkg" ) ) ;
156
147
resolverFuzzy . resolve (
157
148
{ } ,
158
149
__dirname ,
@@ -166,10 +157,7 @@ describe("pnp", () => {
166
157
) ;
167
158
} ) ;
168
159
it ( "should properly deal package.json alias" , done => {
169
- pnpApi . mocks . set (
170
- "pkg/package-alias" ,
171
- path . resolve ( fixture , "pkg/package-alias" )
172
- ) ;
160
+ pnpApi . mocks . set ( "pkg" , path . resolve ( fixture , "pkg" ) ) ;
173
161
resolverFuzzy . resolve (
174
162
{ } ,
175
163
__dirname ,
@@ -185,7 +173,7 @@ describe("pnp", () => {
185
173
) ;
186
174
} ) ;
187
175
it ( "should prefer normal modules over pnp resolves" , done => {
188
- pnpApi . mocks . set ( "m1/a.js " , path . resolve ( fixture , "pkg/a.js " ) ) ;
176
+ pnpApi . mocks . set ( "m1" , path . resolve ( fixture , "pkg" ) ) ;
189
177
resolver . resolve (
190
178
{ } ,
191
179
path . resolve ( __dirname , "fixtures" ) ,
@@ -199,10 +187,7 @@ describe("pnp", () => {
199
187
) ;
200
188
} ) ;
201
189
it ( "should prefer alias over pnp resolves" , done => {
202
- pnpApi . mocks . set (
203
- "alias/index.js" ,
204
- path . resolve ( fixture , "pkg/dir/index.js" )
205
- ) ;
190
+ pnpApi . mocks . set ( "alias" , path . resolve ( fixture , "pkg/dir" ) ) ;
206
191
resolver . resolve (
207
192
{ } ,
208
193
path . resolve ( __dirname , "fixtures" ) ,
@@ -216,11 +201,11 @@ describe("pnp", () => {
216
201
) ;
217
202
} ) ;
218
203
it ( "should prefer pnp over modules after node_modules" , done => {
219
- pnpApi . mocks . set ( "m2/a.js " , path . resolve ( fixture , "pkg/index.js " ) ) ;
204
+ pnpApi . mocks . set ( "m2" , path . resolve ( fixture , "pkg" ) ) ;
220
205
resolver . resolve (
221
206
{ } ,
222
207
path . resolve ( __dirname , "fixtures" ) ,
223
- "m2/a .js" ,
208
+ "m2/index .js" ,
224
209
{ } ,
225
210
( err , result ) => {
226
211
if ( err ) return done ( err ) ;
@@ -242,4 +227,32 @@ describe("pnp", () => {
242
227
}
243
228
) ;
244
229
} ) ;
230
+ it ( "should handle the exports field when using PnP" , done => {
231
+ pnpApi . mocks . set ( "m1" , path . resolve ( fixture , "pkg3" ) ) ;
232
+ resolver . resolve (
233
+ { } ,
234
+ path . resolve ( __dirname , "fixtures" ) ,
235
+ "m1" ,
236
+ { } ,
237
+ ( err , result ) => {
238
+ if ( err ) return done ( err ) ;
239
+ result . should . equal ( path . resolve ( fixture , "pkg3/a.js" ) ) ;
240
+ done ( ) ;
241
+ }
242
+ ) ;
243
+ } ) ;
244
+ it ( "should handle the exports field when using PnP (with sub path)" , done => {
245
+ pnpApi . mocks . set ( "@user/m1" , path . resolve ( fixture , "pkg3" ) ) ;
246
+ resolver . resolve (
247
+ { } ,
248
+ path . resolve ( __dirname , "fixtures" ) ,
249
+ "@user/m1/x" ,
250
+ { } ,
251
+ ( err , result ) => {
252
+ if ( err ) return done ( err ) ;
253
+ result . should . equal ( path . resolve ( fixture , "pkg3/a.js" ) ) ;
254
+ done ( ) ;
255
+ }
256
+ ) ;
257
+ } ) ;
245
258
} ) ;
0 commit comments