26
26
27
27
describe ( "pnp" , ( ) => {
28
28
let pnpApi ;
29
+ let resolverFuzzy ;
29
30
let resolver ;
30
31
if ( isAdmin ) {
31
32
before ( ( ) => {
@@ -49,7 +50,7 @@ describe("pnp", () => {
49
50
}
50
51
}
51
52
} ) ;
52
- resolver = ResolverFactory . createResolver ( {
53
+ resolverFuzzy = ResolverFactory . createResolver ( {
53
54
extensions : [ ".ts" , ".js" ] ,
54
55
aliasFields : [ "browser" ] ,
55
56
fileSystem : nodeFileSystem ,
@@ -59,6 +60,16 @@ describe("pnp", () => {
59
60
pnpApi,
60
61
modules : [ "node_modules" , path . resolve ( fixture , "../pnp-a" ) ]
61
62
} ) ;
63
+ resolver = ResolverFactory . createResolver ( {
64
+ aliasFields : [ "browser" ] ,
65
+ fileSystem : nodeFileSystem ,
66
+ fullySpecified : true ,
67
+ alias : {
68
+ alias : path . resolve ( fixture , "pkg" )
69
+ } ,
70
+ pnpApi,
71
+ modules : [ "node_modules" , path . resolve ( fixture , "../pnp-a" ) ]
72
+ } ) ;
62
73
} ) ;
63
74
it ( "should resolve by going through the pnp api" , done => {
64
75
pnpApi . mocks . set (
@@ -71,6 +82,13 @@ describe("pnp", () => {
71
82
done ( ) ;
72
83
} ) ;
73
84
} ) ;
85
+ 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" ) ) ;
87
+ resolver . resolve ( { } , __dirname , "pkg/dir/index" , { } , ( err , result ) => {
88
+ err . should . be . instanceof ( Error ) ;
89
+ done ( ) ;
90
+ } ) ;
91
+ } ) ;
74
92
it ( "should track dependency to the pnp api" , done => {
75
93
pnpApi . mocks . set (
76
94
"pkg/dir/index.js" ,
@@ -114,11 +132,19 @@ describe("pnp", () => {
114
132
isAdmin
115
133
? done => {
116
134
pnpApi . mocks . set ( "pkg/symlink" , path . resolve ( fixture , "pkg/symlink" ) ) ;
117
- resolver . resolve ( { } , __dirname , "pkg/symlink" , { } , ( err , result ) => {
118
- if ( err ) return done ( err ) ;
119
- result . should . equal ( path . resolve ( fixture , "pkg/symlink/index.js" ) ) ;
120
- done ( ) ;
121
- } ) ;
135
+ resolverFuzzy . resolve (
136
+ { } ,
137
+ __dirname ,
138
+ "pkg/symlink" ,
139
+ { } ,
140
+ ( err , result ) => {
141
+ if ( err ) return done ( err ) ;
142
+ result . should . equal (
143
+ path . resolve ( fixture , "pkg/symlink/index.js" )
144
+ ) ;
145
+ done ( ) ;
146
+ }
147
+ ) ;
122
148
}
123
149
: undefined
124
150
) ;
@@ -127,7 +153,7 @@ describe("pnp", () => {
127
153
"@user/pkg/typescript" ,
128
154
path . resolve ( fixture , "pkg/typescript" )
129
155
) ;
130
- resolver . resolve (
156
+ resolverFuzzy . resolve (
131
157
{ } ,
132
158
__dirname ,
133
159
"@user/pkg/typescript" ,
@@ -144,13 +170,19 @@ describe("pnp", () => {
144
170
"pkg/package-alias" ,
145
171
path . resolve ( fixture , "pkg/package-alias" )
146
172
) ;
147
- resolver . resolve ( { } , __dirname , "pkg/package-alias" , { } , ( err , result ) => {
148
- if ( err ) return done ( err ) ;
149
- result . should . equal (
150
- path . resolve ( fixture , "pkg/package-alias/browser.js" )
151
- ) ;
152
- done ( ) ;
153
- } ) ;
173
+ resolverFuzzy . resolve (
174
+ { } ,
175
+ __dirname ,
176
+ "pkg/package-alias" ,
177
+ { } ,
178
+ ( err , result ) => {
179
+ if ( err ) return done ( err ) ;
180
+ result . should . equal (
181
+ path . resolve ( fixture , "pkg/package-alias/browser.js" )
182
+ ) ;
183
+ done ( ) ;
184
+ }
185
+ ) ;
154
186
} ) ;
155
187
it ( "should prefer normal modules over pnp resolves" , done => {
156
188
pnpApi . mocks . set ( "m1/a.js" , path . resolve ( fixture , "pkg/a.js" ) ) ;
0 commit comments