@@ -22,6 +22,51 @@ const referenceDir = path.resolve(
22
22
) ;
23
23
24
24
describe ( "TsconfigPathsPlugin" , ( ) => {
25
+ it ( "resolves exact mapped path '@components/*' via tsconfig option (example)" , ( done ) => {
26
+ const resolver = ResolverFactory . createResolver ( {
27
+ fileSystem,
28
+ extensions : [ ".ts" , ".tsx" ] ,
29
+ mainFields : [ "browser" , "main" ] ,
30
+ mainFiles : [ "index" ] ,
31
+ tsconfig : path . join ( exampleDir , "tsconfig.json" ) ,
32
+ useSyncFileSystemCalls : true ,
33
+ } ) ;
34
+
35
+ resolver . resolve (
36
+ { } ,
37
+ exampleDir ,
38
+ "@components/button" ,
39
+ { } ,
40
+ ( err , result ) => {
41
+ if ( err ) return done ( err ) ;
42
+ if ( ! result ) return done ( new Error ( "No result" ) ) ;
43
+ expect ( result ) . toEqual (
44
+ path . join ( exampleDir , "src" , "components" , "button.ts" ) ,
45
+ ) ;
46
+ done ( ) ;
47
+ } ,
48
+ ) ;
49
+ } ) ;
50
+
51
+ it ( "when multiple patterns match a module specifier, the pattern with the longest matching prefix before any * token is used:" , ( done ) => {
52
+ const resolver = ResolverFactory . createResolver ( {
53
+ fileSystem,
54
+ extensions : [ ".ts" , ".tsx" ] ,
55
+ mainFields : [ "browser" , "main" ] ,
56
+ mainFiles : [ "index" ] ,
57
+ tsconfig : path . join ( exampleDir , "tsconfig.json" ) ,
58
+ } ) ;
59
+
60
+ resolver . resolve ( { } , exampleDir , "longest/bar" , { } , ( err , result ) => {
61
+ if ( err ) return done ( err ) ;
62
+ if ( ! result ) return done ( new Error ( "No result" ) ) ;
63
+ expect ( result ) . toEqual (
64
+ path . join ( exampleDir , "src" , "mapped" , "longest" , "two.ts" ) ,
65
+ ) ;
66
+ done ( ) ;
67
+ } ) ;
68
+ } ) ;
69
+
25
70
it ( "resolves exact mapped path 'foo' via tsconfig option (example)" , ( done ) => {
26
71
const resolver = ResolverFactory . createResolver ( {
27
72
fileSystem,
@@ -109,25 +154,6 @@ describe("TsconfigPathsPlugin", () => {
109
154
} ) ;
110
155
} ) ;
111
156
112
- it ( "when multiple patterns match a module specifier, the pattern with the longest matching prefix before any * token is used:" , ( done ) => {
113
- const resolver = ResolverFactory . createResolver ( {
114
- fileSystem,
115
- extensions : [ ".ts" , ".tsx" ] ,
116
- mainFields : [ "browser" , "main" ] ,
117
- mainFiles : [ "index" ] ,
118
- tsconfig : path . join ( exampleDir , "tsconfig.json" ) ,
119
- } ) ;
120
-
121
- resolver . resolve ( { } , exampleDir , "longest/bar" , { } , ( err , result ) => {
122
- if ( err ) return done ( err ) ;
123
- if ( ! result ) return done ( new Error ( "No result" ) ) ;
124
- expect ( result ) . toEqual (
125
- path . join ( exampleDir , "src" , "mapped" , "longest" , "two.ts" ) ,
126
- ) ;
127
- done ( ) ;
128
- } ) ;
129
- } ) ;
130
-
131
157
it ( "resolves 'foo' using references from referenceExample project" , ( done ) => {
132
158
const resolver = ResolverFactory . createResolver ( {
133
159
fileSystem,
0 commit comments