mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-27 15:40:36 +08:00
85 lines
2.9 KiB
TypeScript
85 lines
2.9 KiB
TypeScript
import { test, expect, sourceBrowsingUrl } from "@tests/support/fixtures.js";
|
|
|
|
const sourceBrowsingFixture = `${sourceBrowsingUrl}/tree/main/src/true.c`;
|
|
|
|
test("default theme", async ({ page }) => {
|
|
await page.goto(sourceBrowsingFixture);
|
|
|
|
{
|
|
await expect(page.locator("html")).toHaveAttribute("data-theme", "dark");
|
|
await expect(page.locator("html")).toHaveAttribute(
|
|
"data-codefont",
|
|
"jetbrains",
|
|
);
|
|
}
|
|
});
|
|
|
|
test("theme persistence", async ({ page }) => {
|
|
await page.goto(sourceBrowsingFixture);
|
|
await expect(
|
|
page
|
|
.getByRole("navigation", { name: "Breadcrumb" })
|
|
.getByRole("link", { name: "source-browsing" }),
|
|
).toBeVisible();
|
|
await page.getByRole("button", { name: "Settings" }).click();
|
|
|
|
await page.getByRole("button", { name: "Code Font System" }).click();
|
|
await page.getByRole("button", { name: "Light Mode" }).click();
|
|
|
|
await expect(page.locator("html")).toHaveAttribute("data-theme", "light");
|
|
await expect(page.locator("html")).toHaveAttribute("data-codefont", "system");
|
|
|
|
await page.reload();
|
|
|
|
await expect(page.locator("html")).toHaveAttribute("data-theme", "light");
|
|
await expect(page.locator("html")).toHaveAttribute("data-codefont", "system");
|
|
});
|
|
|
|
test("change theme", async ({ page }) => {
|
|
await page.goto(sourceBrowsingFixture);
|
|
await expect(
|
|
page
|
|
.getByRole("navigation", { name: "Breadcrumb" })
|
|
.getByRole("link", { name: "source-browsing" }),
|
|
).toBeVisible();
|
|
await page.getByRole("button", { name: "Settings" }).click();
|
|
|
|
await page.getByRole("button", { name: "Light Mode" }).click();
|
|
await expect(page.locator("html")).toHaveAttribute("data-theme", "light");
|
|
await expect(page.locator("body")).toHaveCSS(
|
|
"background-color",
|
|
"rgb(248, 249, 250)",
|
|
);
|
|
// Source highlighting reacts to theme change.
|
|
await expect(page.getByText("() {")).toHaveCSS("color", "rgb(11, 13, 18)");
|
|
|
|
await page.getByRole("button", { name: "Dark Mode" }).click();
|
|
await expect(page.locator("html")).toHaveAttribute("data-theme", "dark");
|
|
await expect(page.locator("body")).toHaveCSS(
|
|
"background-color",
|
|
"rgb(0, 6, 15)",
|
|
);
|
|
// Source highlighting reacts to theme change.
|
|
await expect(page.getByText("() {")).toHaveCSS("color", "rgb(255, 255, 255)");
|
|
});
|
|
|
|
test("change code font", async ({ page }) => {
|
|
await page.goto(sourceBrowsingFixture);
|
|
await expect(
|
|
page
|
|
.getByRole("navigation", { name: "Breadcrumb" })
|
|
.getByRole("link", { name: "source-browsing" }),
|
|
).toBeVisible();
|
|
|
|
await page.getByRole("button", { name: "Settings" }).click();
|
|
|
|
await page.getByRole("button", { name: "Code Font System" }).click();
|
|
await expect(page.locator("html")).toHaveAttribute("data-codefont", "system");
|
|
|
|
await page.getByRole("button", { name: "Code Font JetBrains Mono" }).click();
|
|
await expect(page.locator("html")).toHaveAttribute(
|
|
"data-codefont",
|
|
"jetbrains",
|
|
);
|
|
});
|