-
-
Notifications
You must be signed in to change notification settings - Fork 75
/
jsx.test.ts
47 lines (40 loc) 路 1.76 KB
/
jsx.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
import { assertStrictEquals as equals } from "../deps/assert.ts";
import { getSite, testPage } from "./utils.ts";
import jsx from "../plugins/jsx.ts";
Deno.test("build a site with jsx/tsx modules", async () => {
const site = getSite({
src: "jsx",
location: new URL("https://example.com/blog"),
});
site.use(jsx());
await site.build();
testPage(site, "/index", (page) => {
equals(page.data.url, "/");
equals(page.data.title, "This is the title");
equals(page.document?.querySelector("h1")?.innerText, "Hello world");
equals(page.document?.querySelector("p")?.innerText, "This is a JSX page");
equals(page.document?.querySelector("title")?.innerText, page.data.title);
});
testPage(site, "/with-function", (page) => {
equals(page.data.url, "/with-function/");
equals(page.data.title, "This is the title");
equals(page.document?.querySelector("h1")?.innerText, page.data.title);
equals(page.document?.querySelector("title")?.innerText, page.data.title);
equals(page.document?.querySelector("a")?.getAttribute("href"), "/blog/");
});
testPage(site, "/with-markdown", (page) => {
equals(page.data.url, "/with-markdown/");
equals(page.data.title, "Markdown combined with JSX");
equals(page.document?.querySelector("h1")?.innerText, "Hello world");
equals(page.document?.querySelector("title")?.innerText, page.data.title);
equals(page.document?.querySelector("a")?.getAttribute("href"), "/");
});
testPage(site, "/multiple[0]", (page) => {
equals(page.data.url, "/page/1/");
equals(page.document?.querySelector("div")?.innerText, "1");
});
testPage(site, "/multiple[1]", (page) => {
equals(page.data.url, "/page/2/");
equals(page.document?.querySelector("div")?.innerText, "2");
});
});