Files
radicle-explorer/tests/e2e/theme.spec.ts
T
Rūdolfs Ošiņš 8e580385f0 Tweak tab visuals
Make selected tabs not change on hover. Change unselected tabs to use regular
font weight and foreground-contrast.
2024-01-15 18:28:22 +00:00

81 lines
2.8 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 persistance", async ({ page }) => {
await page.goto(sourceBrowsingFixture);
await expect(
page.getByRole("banner").getByRole("link", { name: "source-browsing" }),
).toBeVisible();
await page.getByRole("button", { name: "Settings" }).first().click();
await page.getByText("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("banner").getByRole("link", { name: "source-browsing" }),
).toBeVisible();
await page.getByRole("button", { name: "Settings" }).first().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(245, 245, 255)",
);
// Source highlighting reacts to theme change.
await expect(page.getByText("() {")).toHaveCSS("color", "rgb(35, 37, 99)");
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(10, 13, 16)",
);
// Source highlighting reacts to theme change.
await expect(page.getByText("() {")).toHaveCSS("color", "rgb(249, 249, 251)");
});
test("change code font", async ({ page }) => {
await page.goto(sourceBrowsingFixture);
await expect(
page.getByRole("banner").getByRole("link", { name: "source-browsing" }),
).toBeVisible();
await page.getByRole("button", { name: "Settings" }).first().click();
await page.getByText("System").click();
await expect(page.getByText("System")).toHaveClass(/selected/);
await expect(page.locator("html")).toHaveAttribute("data-codefont", "system");
await page.getByText("JetBrains Mono").click();
await expect(page.getByText("JetBrains Mono")).toHaveClass(/selected/);
await expect(page.locator("html")).toHaveAttribute(
"data-codefont",
"jetbrains",
);
});