56 lines
2.0 KiB
TypeScript
56 lines
2.0 KiB
TypeScript
import { expect, test } from "@playwright/test";
|
|
import { readFileSync } from "node:fs";
|
|
import { resolve } from "node:path";
|
|
|
|
function readSource(path: string) {
|
|
return readFileSync(resolve(process.cwd(), path), "utf8");
|
|
}
|
|
|
|
test.describe("settings visual consistency", () => {
|
|
test("keeps access security surfaces readable in dark mode", () => {
|
|
const source = readSource(
|
|
"app/(admin)/settings/_components/access-security-dashboard.tsx"
|
|
);
|
|
|
|
expect(source).toContain("dark:bg-slate-900/70");
|
|
expect(source).toContain("dark:bg-sky-950/45");
|
|
expect(source).toContain("dark:bg-orange-950/45");
|
|
expect(source).toContain("dark:bg-emerald-950/45");
|
|
expect(source).toContain("dark:bg-slate-800");
|
|
expect(source).toContain("dark:bg-zinc-900/70");
|
|
expect(source).toContain("dark:bg-red-950/30");
|
|
});
|
|
|
|
test("keeps Style Pro inside the shared settings shell", () => {
|
|
const mainSource = readSource(
|
|
"app/(admin)/settings/admin-settings-client.tsx"
|
|
);
|
|
const styleProSource = readSource(
|
|
"app/(admin)/settings/style-pro/style-pro-settings-client.tsx"
|
|
);
|
|
|
|
const sharedShell =
|
|
"settings-workspace w-full px-3 py-3 sm:px-4 xl:px-5";
|
|
expect(mainSource).toContain(sharedShell);
|
|
expect(styleProSource).toContain(sharedShell);
|
|
expect(styleProSource).toContain("<AdminSettingsNavigation");
|
|
expect(styleProSource).toContain('activeTab="style-pro"');
|
|
expect(styleProSource).toContain("router.push(");
|
|
expect(styleProSource).toContain("/settings?tab=");
|
|
expect(styleProSource).not.toContain("max-w-7xl");
|
|
expect(styleProSource).not.toContain("返回设置");
|
|
});
|
|
|
|
test("restores the requested settings tab after cross-page navigation", () => {
|
|
const source = readSource(
|
|
"app/(admin)/settings/admin-settings-client.tsx"
|
|
);
|
|
|
|
expect(source).toContain(
|
|
'new URLSearchParams(window.location.search).get("tab")'
|
|
);
|
|
expect(source).toContain("ADMIN_SETTINGS_NAV_ITEMS.some");
|
|
expect(source).toContain('url.searchParams.set("tab", value)');
|
|
});
|
|
});
|