source: frontend/node_modules/tsconfig-paths/src/__tests__/data/match-path-data.ts

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 7.4 KB
Line 
1import { join, dirname } from "path";
2import { removeExtension } from "../../filesystem";
3
4export interface OneTest {
5 readonly name: string;
6 readonly only?: boolean;
7 readonly skip?: boolean;
8 readonly absoluteBaseUrl: string;
9 readonly paths: { [key: string]: Array<string> };
10 readonly mainFields?: string[];
11 readonly addMatchAll?: boolean;
12 readonly existingFiles: ReadonlyArray<string>;
13 readonly requestedModule: string;
14 readonly extensions: ReadonlyArray<string>;
15 readonly packageJson?: {};
16 readonly expectedPath: string | undefined;
17}
18
19const defaultExtensionsWhenRunningInTsNode = [
20 ".js",
21 ".json",
22 ".node",
23 ".ts",
24 ".tsx",
25];
26
27export const tests: ReadonlyArray<OneTest> = [
28 {
29 name: "should locate path that matches with star and exists",
30 absoluteBaseUrl: "/root/",
31 paths: {
32 "lib/*": ["location/*"],
33 },
34 existingFiles: [join("/root", "location", "mylib", "index.ts")],
35 requestedModule: "lib/mylib",
36 expectedPath: dirname(join("/root", "location", "mylib", "index.ts")),
37 extensions: defaultExtensionsWhenRunningInTsNode,
38 },
39 {
40 name: "should resolve to correct path when many are specified",
41 absoluteBaseUrl: "/root/",
42 paths: {
43 "lib/*": ["foo1/*", "foo2/*", "location/*", "foo3/*"],
44 },
45 existingFiles: [join("/root", "location", "mylib", "index.ts")],
46 requestedModule: "lib/mylib",
47 extensions: [".ts"],
48 expectedPath: dirname(join("/root", "location", "mylib", "index.ts")),
49 },
50 {
51 name:
52 "should locate path that matches with star and prioritize pattern with longest prefix",
53 absoluteBaseUrl: "/root/",
54 paths: {
55 "*": ["location/*"],
56 "lib/*": ["location/*"],
57 },
58 existingFiles: [
59 join("/root", "location", "lib", "mylib", "index.ts"),
60 join("/root", "location", "mylib", "index.ts"),
61 ],
62 requestedModule: "lib/mylib",
63 expectedPath: dirname(join("/root", "location", "mylib", "index.ts")),
64 extensions: defaultExtensionsWhenRunningInTsNode,
65 },
66 {
67 name: "should locate path that matches with star and exists with extension",
68 absoluteBaseUrl: "/root/",
69 paths: { "lib/*": ["location/*"] },
70 existingFiles: [join("/root", "location", "mylib.myext")],
71 requestedModule: "lib/mylib",
72 extensions: [".js", ".myext"],
73 expectedPath: removeExtension(join("/root", "location", "mylib.myext")),
74 },
75 {
76 name: "should resolve request with extension specified",
77 absoluteBaseUrl: "/root/",
78 paths: { "lib/*": ["location/*"] },
79 existingFiles: [join("/root", "location", "test.jpg")],
80 requestedModule: "lib/test.jpg",
81 expectedPath: join("/root", "location", "test.jpg"),
82 extensions: defaultExtensionsWhenRunningInTsNode,
83 },
84 {
85 name: "should locate path that matches without star and exists",
86 absoluteBaseUrl: "/root/",
87 paths: {
88 "lib/foo": ["location/foo"],
89 },
90 existingFiles: [join("/root", "location", "foo.ts")],
91 requestedModule: "lib/foo",
92 expectedPath: removeExtension(join("/root", "location", "foo.ts")),
93 extensions: defaultExtensionsWhenRunningInTsNode,
94 },
95 {
96 name: "should resolve to parent folder when filename is in subfolder",
97 absoluteBaseUrl: "/root/",
98 paths: { "lib/*": ["location/*"] },
99 existingFiles: [join("/root", "location", "mylib", "index.ts")],
100 requestedModule: "lib/mylib",
101 expectedPath: dirname(join("/root", "location", "mylib", "index.ts")),
102 extensions: defaultExtensionsWhenRunningInTsNode,
103 },
104 {
105 name: "should resolve from main field in package.json",
106 absoluteBaseUrl: "/root/",
107 paths: { "lib/*": ["location/*"] },
108 existingFiles: [join("/root", "location", "mylib", "kalle.ts")],
109 packageJson: { main: "./kalle.ts" },
110 requestedModule: "lib/mylib",
111 expectedPath: join("/root", "location", "mylib", "kalle.ts"),
112 extensions: defaultExtensionsWhenRunningInTsNode,
113 },
114 {
115 name: "should resolve from main field in package.json (js)",
116 absoluteBaseUrl: "/root",
117 paths: { "lib/*": ["location/*"] },
118 existingFiles: [join("/root", "location", "mylib.js", "kalle.js")],
119 packageJson: { main: "./kalle.js" },
120 requestedModule: "lib/mylib.js",
121 extensions: [".ts", ".js"],
122 expectedPath: join("/root", "location", "mylib.js", "kalle.js"),
123 },
124 {
125 name: "should resolve from list of fields by priority in package.json",
126 absoluteBaseUrl: "/root/",
127 paths: { "lib/*": ["location/*"] },
128 mainFields: ["missing", "browser", "main"],
129 packageJson: { main: "./main.js", browser: "./browser.js" },
130 existingFiles: [
131 join("/root", "location", "mylibjs", "main.js"), // mainFilePath
132 join("/root", "location", "mylibjs", "browser.js"), // browserFilePath
133 ],
134 extensions: [".ts", ".js"],
135 requestedModule: "lib/mylibjs",
136 expectedPath: join("/root", "location", "mylibjs", "browser.js"),
137 },
138 {
139 name: "should ignore field mappings to missing files in package.json",
140 absoluteBaseUrl: "/root/",
141 paths: { "lib/*": ["location/*"] },
142 mainFields: ["browser", "main"],
143 existingFiles: [join("/root", "location", "mylibjs", "kalle.js")],
144 requestedModule: "lib/mylibjs",
145 packageJson: {
146 main: "./kalle.js",
147 browser: "./nope.js",
148 },
149 extensions: [".ts", ".js"],
150 expectedPath: join("/root", "location", "mylibjs", "kalle.js"),
151 },
152 {
153 name: "should ignore advanced field mappings in package.json",
154 absoluteBaseUrl: "/root/",
155 paths: { "lib/*": ["location/*"] },
156 existingFiles: [
157 join("/root", "location", "mylibjs", "kalle.js"),
158 join("/root", "location", "mylibjs", "browser.js"),
159 ],
160 requestedModule: "lib/mylibjs",
161 packageJson: {
162 main: "./kalle.js",
163 browser: { mylibjs: "./browser.js", "./kalle.js": "./browser.js" },
164 },
165 extensions: [".ts", ".js"],
166 expectedPath: join("/root", "location", "mylibjs", "kalle.js"),
167 },
168 {
169 name: "should resolve to with the help of baseUrl when not explicitly set",
170 absoluteBaseUrl: "/root/",
171 paths: {},
172 existingFiles: [join("/root", "mylib", "index.ts")],
173 requestedModule: "mylib",
174 expectedPath: dirname(join("/root", "mylib", "index.ts")),
175 extensions: defaultExtensionsWhenRunningInTsNode,
176 },
177 {
178 name: "should not resolve with the help of baseUrl when asked not to",
179 absoluteBaseUrl: "/root/",
180 paths: {},
181 addMatchAll: false,
182 existingFiles: [join("/root", "mylib", "index.ts")],
183 requestedModule: "mylib",
184 expectedPath: undefined,
185 extensions: defaultExtensionsWhenRunningInTsNode,
186 },
187 {
188 name: "should not locate path that does not match",
189 absoluteBaseUrl: "/root/",
190 paths: { "lib/*": ["location/*"] },
191 existingFiles: [join("root", "location", "mylib")],
192 requestedModule: "mylib",
193 expectedPath: undefined,
194 extensions: defaultExtensionsWhenRunningInTsNode,
195 },
196 {
197 name: "should not resolve typings file (index.d.ts)",
198 absoluteBaseUrl: "/root/",
199 paths: {
200 "lib/*": ["location/*"],
201 },
202 existingFiles: [join("/root", "location", "mylib", "index.d.ts")],
203 requestedModule: "lib/mylib",
204 expectedPath: undefined,
205 extensions: defaultExtensionsWhenRunningInTsNode,
206 },
207 {
208 name: "should resolve main file with cjs file extension",
209 absoluteBaseUrl: "/root/",
210 paths: {},
211 existingFiles: [join("/root", "mylib", "index.cjs")],
212 packageJson: {
213 main: "./index.cjs",
214 },
215 requestedModule: "mylib",
216 expectedPath: join("/root", "mylib", "index.cjs"),
217 extensions: defaultExtensionsWhenRunningInTsNode,
218 },
219];
Note: See TracBrowser for help on using the repository browser.