Marek Posolda f938d894b9
AdminEvent.getResourcePath() returns paths with duplicated slashes
closes #45114

Signed-off-by: mposolda <mposolda@gmail.com>
2026-01-05 21:18:39 +00:00

152 lines
4.1 KiB
TypeScript

import { type Page, test } from "@playwright/test";
import { v4 as uuid } from "uuid";
import adminClient from "../utils/AdminClient.ts";
import { login, logout } from "../utils/login.ts";
import { assertAxeViolations } from "../utils/masthead.ts";
import { goToEvents, goToRealm } from "../utils/sidebar.ts";
import {
assertEmptyTable,
assertRowExists,
expandRow,
} from "../utils/table.ts";
import {
assertSearchButtonDisabled,
assertSearchChipGroupItemExist,
clickSearchButton,
clickSearchPanel,
enableSaveEvents,
fillSearchPanel,
fillAdminEventsSearchPanel,
goToAdminEventsTab,
goToEventsConfig,
} from "./list.ts";
test.describe.serial("Events tests", () => {
const tableName = "Events";
const realmName = `events-realm-${uuid()}`;
const eventsTestUser = {
eventsTestUserId: "",
userRepresentation: {
username: `events-test-${uuid()}`,
enabled: true,
credentials: [{ value: "events-test" }],
realm: realmName,
email: "some@email.com",
firstName: "Erik",
lastName: "Blankenburg",
},
};
test.beforeAll(async () => {
await adminClient.createRealm(realmName, { enabled: true });
const { id } = await adminClient.createUser(
eventsTestUser.userRepresentation,
);
eventsTestUser.eventsTestUserId = id!;
await adminClient.addClientRoleToUser(
id!,
"realm-management",
["realm-admin"],
realmName,
);
});
test.afterAll(() => adminClient.deleteRealm(realmName));
test.describe.serial("User events list empty", () => {
test.beforeEach(async ({ page }) => {
await login(page);
await goToRealm(page, realmName);
await goToEvents(page);
});
test("Show empty when no save events", async ({ page }) => {
await goToEventsConfig(page);
await goToEvents(page);
await assertEmptyTable(page);
});
});
test.describe.serial("User events with events", () => {
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
await login(page);
await goToRealm(page, realmName);
await goToEvents(page);
await goToEventsConfig(page);
await enableSaveEvents(page);
await logout(page);
});
test.afterAll(async () => {
await page.close();
});
test.beforeEach(async ({ page }) => {
await login(page, {
realm: realmName,
username: eventsTestUser.userRepresentation.username,
password: eventsTestUser.userRepresentation.credentials[0].value,
});
await goToEvents(page);
});
test("Expand item to see more information", async ({ page }) => {
await expandRow(page, tableName, 0);
await assertRowExists(page, "token_id");
});
test("Search by user ID", async ({ page }) => {
await clickSearchPanel(page);
await assertSearchButtonDisabled(page);
await fillSearchPanel(page, {
userId: eventsTestUser.eventsTestUserId,
});
await clickSearchButton(page);
await assertSearchChipGroupItemExist(
page,
eventsTestUser.eventsTestUserId,
);
});
test("Check accessibility on user events tab", async ({ page }) => {
await assertAxeViolations(page);
});
test("Check accessibility on admin events tab", async ({ page }) => {
await goToAdminEventsTab(page);
await assertAxeViolations(page);
});
test("creating user", async ({ page }) => {
const userToCreate = {
username: `my-user`,
enabled: true,
credentials: [{ value: "events-test" }],
realm: realmName,
email: "some-other@email.com",
firstName: "My",
lastName: "User",
};
await adminClient.createUser(userToCreate);
await goToAdminEventsTab(page);
await clickSearchPanel(page);
await assertSearchButtonDisabled(page);
await fillAdminEventsSearchPanel(page, {
resourceType: "USER",
});
await clickSearchButton(page);
await assertRowExists(page, "users/");
await assertRowExists(page, "users//", false); // Assert no trailing slash
});
});
});