-
-
Notifications
You must be signed in to change notification settings - Fork 75
/
esbuild.test.ts
57 lines (49 loc) 路 1.55 KB
/
esbuild.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
import { assertSiteSnapshot, build, getSite } from "./utils.ts";
import esbuild from "../plugins/esbuild.ts";
// Disable sanitizeOps & sanitizeResources because esbuild doesn't close them
Deno.test(
"esbuild plugin",
{ sanitizeOps: false, sanitizeResources: false },
async (t) => {
const site = getSite({
src: "esbuild",
});
// Test ignore with a function filter
site.ignore((path) => path === "/modules" || path.startsWith("/modules/"));
site.use(esbuild());
await build(site);
await assertSiteSnapshot(t, site);
},
);
// Disable sanitizeOps & sanitizeResources because esbuild doesn't close them
Deno.test(
"esbuild plugin with splitting as true",
{ sanitizeOps: false, sanitizeResources: false },
async (t) => {
const site = getSite({
src: "esbuild",
});
// Test ignore with a function filter
site.ignore((path) => path === "/modules" || path.startsWith("/modules/"));
site.use(esbuild({
options: {
splitting: true,
outdir: "foo",
},
}));
await build(site);
// Normalize chunk name
site.pages.forEach((page) => {
const url = page.data.url;
if (!url) return;
if (url.match(/chunk-[\w]{8}\.js/)) {
page.data.url = url.replace(/chunk-[\w]{8}\.js/, "chunk.js");
page.src.slug = page.src.slug.replace(/chunk-[\w]{8}/, "chunk");
} else {
const content = page.content as string;
page.content = content.replace(/chunk-[\w]{8}\.js/, "chunk.js");
}
});
await assertSiteSnapshot(t, site);
},
);