mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-07-18 23:34:04 +02:00
65 lines
2.4 KiB
JavaScript
65 lines
2.4 KiB
JavaScript
import { expect, test } from "@playwright/test";
|
|
import { login, restoreSqliteSnapshot, screenshot } from "../util-test";
|
|
|
|
test.describe("Multiple Users", () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await restoreSqliteSnapshot(page);
|
|
});
|
|
|
|
test("test multiple users", async ({ page }, testInfo) => {
|
|
// Login as admin
|
|
await page.goto("./settings/users");
|
|
await login(page, "admin");
|
|
|
|
// Check if the user list contains only the admin user
|
|
await expect(page.getByTestId("users-list")).toHaveCount(1);
|
|
|
|
await screenshot(testInfo, page);
|
|
|
|
// Add a second user
|
|
await page.goto("./settings/users/add");
|
|
|
|
await expect(page.getByTestId("username-input")).toBeVisible();
|
|
await page.getByTestId("username-input").fill("newuser");
|
|
await page.getByTestId("password-input").fill("newuser123");
|
|
await page.getByTestId("password-repeat-input").fill("newuser123");
|
|
await page.getByTestId("submit-create-admin-form").click();
|
|
|
|
// Ensure the new user is created and visible in the user list
|
|
await page.waitForURL("./settings/users");
|
|
await expect(page.getByTestId("users-list")).toContainText("newuser");
|
|
await expect(page.getByTestId("users-list").locator("[data-testid='user-item']")).toHaveCount(2);
|
|
|
|
await screenshot(testInfo, page);
|
|
|
|
// Disable the admin user
|
|
await page.getByTestId("toggle-active-user-admin").click();
|
|
await page.getByRole("button", {
|
|
name: "Yes",
|
|
exact: true
|
|
}).click();
|
|
await expect(page.getByTestId("lost-connection")).toBeVisible();
|
|
|
|
// Make sure we're back on the login page after refresh
|
|
await page.reload();
|
|
await expect(page.getByText("Log in")).toBeVisible();
|
|
|
|
// Login as the new user
|
|
await page.goto("./dashboard"); // Assuming the new user has ID 2
|
|
await login(page, "newuser");
|
|
await screenshot(testInfo, page);
|
|
|
|
// Disable self-user
|
|
await page.goto("./settings/users/edit/2");
|
|
await page.getByTestId("active-checkbox").uncheck();
|
|
await expect(page.getByTestId("lost-connection")).toBeVisible();
|
|
|
|
await screenshot(testInfo, page);
|
|
|
|
// Make sure we're back on the login page after refresh
|
|
await page.reload();
|
|
await expect(page.getByText("Log in")).toBeVisible();
|
|
|
|
await screenshot(testInfo, page);
|
|
});
|
|
});
|