mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
test(e2e): add Playwright tests for settings toggles
Tests cover: - Debug mode toggle on/off - Sidebar visibility toggle - Settings persistence after page reload
This commit is contained in:
62
tests/e2e/settings-toggles.spec.ts
Normal file
62
tests/e2e/settings-toggles.spec.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
|
||||
test.describe("Settings Toggles", () => {
|
||||
test.describe("Debug Mode Toggle", () => {
|
||||
test("should toggle debug mode on and off", async ({ page }) => {
|
||||
await page.goto("/dashboard/settings");
|
||||
await page.waitForLoadState("networkidle");
|
||||
await page.click("text=Advanced");
|
||||
|
||||
const debugToggle = page.locator('[aria-label*="debug" i], [data-testid*="debug" i]').first();
|
||||
|
||||
if (await debugToggle.isVisible({ timeout: 3000 }).catch(() => false)) {
|
||||
const initialState = await debugToggle.isChecked();
|
||||
await debugToggle.click();
|
||||
await page.waitForTimeout(500);
|
||||
const newState = await debugToggle.isChecked();
|
||||
expect(newState).not.toBe(initialState);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
test.describe("Sidebar Visibility Toggle", () => {
|
||||
test("should toggle sidebar items visibility", async ({ page }) => {
|
||||
await page.goto("/dashboard/settings");
|
||||
await page.waitForLoadState("networkidle");
|
||||
await page.click("text=General");
|
||||
|
||||
const sidebarToggle = page
|
||||
.locator('[aria-label*="sidebar" i], [data-testid*="sidebar" i]')
|
||||
.first();
|
||||
|
||||
if (await sidebarToggle.isVisible({ timeout: 3000 }).catch(() => false)) {
|
||||
const initialState = await sidebarToggle.isChecked();
|
||||
await sidebarToggle.click();
|
||||
await page.waitForTimeout(500);
|
||||
const newState = await sidebarToggle.isChecked();
|
||||
expect(newState).not.toBe(initialState);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
test.describe("Settings Persistence", () => {
|
||||
test("should persist debug mode after page reload", async ({ page }) => {
|
||||
await page.goto("/dashboard/settings");
|
||||
await page.waitForLoadState("networkidle");
|
||||
await page.click("text=Advanced");
|
||||
|
||||
const debugToggle = page.locator('[aria-label*="debug" i], [data-testid*="debug" i]').first();
|
||||
|
||||
if (await debugToggle.isVisible({ timeout: 3000 }).catch(() => false)) {
|
||||
const wasChecked = await debugToggle.isChecked();
|
||||
await debugToggle.click();
|
||||
await page.waitForTimeout(500);
|
||||
await page.reload();
|
||||
await page.waitForLoadState("networkidle");
|
||||
await page.click("text=Advanced");
|
||||
const isChecked = await debugToggle.isChecked();
|
||||
expect(isChecked).not.toBe(wasChecked);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user