Skip to content

Commit d7b95cf

Browse files
authored
test: add more e2e tests in options.test.ts (#375)
1 parent c76a511 commit d7b95cf

File tree

1 file changed

+128
-23
lines changed

1 file changed

+128
-23
lines changed

e2e-tests/options.test.ts

Lines changed: 128 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,132 @@ test("should switch language and show options for each", async ({ page }) => {
1616

1717
const languageSelect = page.getByRole("combobox", { name: "Language" });
1818

19-
await languageSelect.click();
20-
await page.getByRole("option", { name: "JSON" }).click();
21-
await expect(
22-
page.getByRole("switch", { name: "Allow Trailing Commas" }),
23-
).toBeVisible();
24-
25-
await languageSelect.click();
26-
await page.getByRole("option", { name: "Markdown" }).click();
27-
await expect(
28-
page.getByRole("combobox", { name: "Front Matter" }),
29-
).toBeVisible();
30-
31-
await languageSelect.click();
32-
await page.getByRole("option", { name: "CSS" }).click();
33-
await expect(
34-
page.getByRole("switch", { name: "Tolerant Parsing" }),
35-
).toBeVisible();
36-
37-
await languageSelect.click();
38-
await page.getByRole("option", { name: "HTML" }).click();
39-
await expect(
40-
page.getByRole("combobox", { name: "Template Engine Syntax" }),
41-
).toBeVisible();
19+
// JavaScript
20+
await test.step("should show JavaScript options when JavaScript is selected", async () => {
21+
await languageSelect.click();
22+
await page
23+
.getByRole("option", { exact: true, name: "JavaScript" })
24+
.click();
25+
26+
// `Language` Combobox
27+
await expect(
28+
page.getByRole("combobox", { exact: true, name: "Language" }),
29+
).toHaveText("JavaScript");
30+
31+
// `Parser` Combobox
32+
await expect(
33+
page.getByRole("combobox", { exact: true, name: "Parser" }),
34+
).toHaveText("Espree");
35+
36+
// `Source Type` Combobox
37+
await expect(
38+
page.getByRole("combobox", { exact: true, name: "Source Type" }),
39+
).toHaveText("Module");
40+
41+
// `ECMAScript Version` Combobox
42+
await expect(
43+
page.getByRole("combobox", {
44+
exact: true,
45+
name: "ECMAScript Version",
46+
}),
47+
).toHaveText("Latest");
48+
49+
// `JSX` Switch
50+
await expect(
51+
page.getByRole("switch", {
52+
exact: true,
53+
name: "JSX",
54+
}),
55+
).toBeVisible();
56+
});
57+
58+
// JSON
59+
await test.step("should show JSON options when JSON is selected", async () => {
60+
await languageSelect.click();
61+
await page.getByRole("option", { exact: true, name: "JSON" }).click();
62+
63+
// `Language` Combobox
64+
await expect(
65+
page.getByRole("combobox", { exact: true, name: "Language" }),
66+
).toHaveText("JSON");
67+
68+
// `Mode` Combobox
69+
await expect(
70+
page.getByRole("combobox", { exact: true, name: "Mode" }),
71+
).toHaveText("jsonc");
72+
73+
// `Allow Trailing Commas` Switch
74+
await expect(
75+
page.getByRole("switch", {
76+
exact: true,
77+
name: "Allow Trailing Commas",
78+
}),
79+
).toBeVisible();
80+
});
81+
82+
// Markdown
83+
await test.step("should show Markdown options when Markdown is selected", async () => {
84+
await languageSelect.click();
85+
await page
86+
.getByRole("option", { exact: true, name: "Markdown" })
87+
.click();
88+
89+
// `Language` Combobox
90+
await expect(
91+
page.getByRole("combobox", { exact: true, name: "Language" }),
92+
).toHaveText("Markdown");
93+
94+
// `Mode` Combobox
95+
await expect(
96+
page.getByRole("combobox", { exact: true, name: "Mode" }),
97+
).toHaveText("CommonMark");
98+
99+
// `Front Matter` Combobox
100+
await expect(
101+
page.getByRole("combobox", { exact: true, name: "Front Matter" }),
102+
).toBeVisible();
103+
});
104+
105+
// CSS
106+
await test.step("should show CSS options when CSS is selected", async () => {
107+
await languageSelect.click();
108+
await page.getByRole("option", { exact: true, name: "CSS" }).click();
109+
110+
// `Language` Combobox
111+
await expect(
112+
page.getByRole("combobox", { exact: true, name: "Language" }),
113+
).toHaveText("CSS");
114+
115+
// `Tolerant Parsing` Switch
116+
await expect(
117+
page.getByRole("switch", { exact: true, name: "Tolerant Parsing" }),
118+
).toBeVisible();
119+
});
120+
121+
// HTML
122+
await test.step("should show HTML options when HTML is selected", async () => {
123+
await languageSelect.click();
124+
await page.getByRole("option", { exact: true, name: "HTML" }).click();
125+
126+
// `Language` Combobox
127+
await expect(
128+
page.getByRole("combobox", { exact: true, name: "Language" }),
129+
).toHaveText("HTML");
130+
131+
// `Template Engine Syntax` Combobox
132+
await expect(
133+
page.getByRole("combobox", {
134+
exact: true,
135+
name: "Template Engine Syntax",
136+
}),
137+
).toBeVisible();
138+
139+
// `Front Matter` Switch
140+
await expect(
141+
page.getByRole("switch", {
142+
exact: true,
143+
name: "Front Matter",
144+
}),
145+
).toBeVisible();
146+
});
42147
});

0 commit comments

Comments
 (0)