-
-
Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathstyles-test.ts
60 lines (53 loc) · 1.77 KB
/
styles-test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import { isCssUrlWithoutSideEffects } from "../vite/styles";
describe("isCssUrlWithoutSideEffects", () => {
it("returns true for query parameters that result in an exported value with no side effects", () => {
let urls = [
"my/file.css?inline",
"my/file.css?inline-css",
"my/file.css?inline&raw",
"my/file.css?raw",
"my/file.css?raw&url",
"my/file.css?url",
"my/file.css?url&something=else",
"my/file.css?something=else&url",
"my/file.css?url&raw",
// other parameters mixed in
"my/file.css?inline&something=else",
"my/file.css?something=else&inline",
"my/file.css?inline&raw&something=else",
"my/file.css?something=else&inline&raw",
"my/file.css?raw&something=else&url",
"my/file.css?something=else&raw&url",
"my/file.css?url&something=else&raw",
"my/file.css?url&raw&something=else",
"my/file.css?something=else&url&raw",
];
for (let url of urls) {
expect(isCssUrlWithoutSideEffects(url)).toBe(true);
}
});
it("returns false for other query parameters or no parameters", () => {
let urls = [
"my/file.css",
"my/file.css?foo",
"my/file.css?foo=bar",
"my/file.css?foo&bar",
"my/file.css?inlinex",
"my/file.css?rawx",
"my/file.css?urlx",
// values other than blank since Vite doesn't match these
"my/file.css?inline=foo",
"my/file.css?inline-css=foo",
"my/file.css?raw=foo",
"my/file.css?url=foo",
// explicitly blank values since Vite doesn't match these
"my/file.css?inline=",
"my/file.css?inline-css=",
"my/file.css?raw=",
"my/file.css?url=",
];
for (let url of urls) {
expect(isCssUrlWithoutSideEffects(url)).toBe(false);
}
});
});