Files
keycloak/js/apps/admin-ui/test/client-scope/mappers.ts
Erik Jan de Wit 095a194ec3 playwright rewrite (#36276)
* initial version playwright rewrite

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* small refactor cancel button

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added policies ciba to playwright

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added policies spec

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added flow tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added axe tests for flows

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added more tests for authentication flows

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added client advanced test to playwright

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added client authorization tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added axe check

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added test for initial access token

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added registration policies test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added client scope test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added client scope tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* updated dependency

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added client role test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fix running playwright tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added client saml

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added saml test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added events test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* more groups tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added group role test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added realm settings i18n tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added oidc and saml test for identity provider

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fix tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* update ci to run playwright instead of cypress

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* add masthead test and use component instead

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added organizations test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added export realm test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added partial import

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added realm roles

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* add realm client policies test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added client profile tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* merge errors

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* realm settings

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added realm settings general test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* add login tab and localization

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* realm settings accessibility test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added user profile test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added realm create test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added realm user registration spec

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added sessions test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added kerberos test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added ldap mapper test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added ldap test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* removed cypress tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added user tab test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* run playwright tests instead of jest tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed some tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed some more tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fix test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fix test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* removed cypress

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* remove cyperss

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Remove some more workflow remanants from Cypress

Signed-off-by: Jon Koops <jonkoops@gmail.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* lock file

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* pr review

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Jon Koops <jonkoops@gmail.com>
Co-authored-by: Jon Koops <jonkoops@gmail.com>
2025-03-12 07:35:22 -04:00

101 lines
2.8 KiB
TypeScript

import { Page, expect } from "@playwright/test";
import {
assertSelectValue,
clickCancelButton,
clickSaveButton,
selectItem,
} from "../utils/form";
import { assertNotificationMessage } from "../utils/masthead";
import { confirmModal } from "../utils/modal";
import {
assertRowExists,
clickRowKebabItem,
clickSelectRow,
} from "../utils/table";
export enum ClaimJsonType {
String = "String",
Long = "long",
Int = "int",
Boolean = "boolean",
Json = "JSON",
}
export async function goToMappersTab(page: Page) {
await page.getByTestId("mappers").click();
}
async function clickAddMapperButton(page: Page) {
await page.getByRole("button", { name: "Add mapper" }).click();
}
export async function addPredefinedMappers(page: Page, mappers: string[]) {
await clickAddMapperButton(page);
await page.getByRole("menuitem", { name: "From predefined mappers" }).click();
for (const mapperName of mappers) {
await clickSelectRow(page, "Add predefined mappers", mapperName);
}
await confirmModal(page);
await assertNotificationMessage(page, "Mapping successfully created");
for (const mapperName of mappers) {
await assertRowExists(page, mapperName);
}
}
export async function addMappersByConfiguration(page: Page, mappers: string[]) {
for (const mapperName of mappers) {
await clickAddMapperButton(page);
await page.getByRole("menuitem", { name: "By configuration" }).click();
await page.getByText(mapperName, { exact: true }).click();
await page.getByTestId("name").fill(mapperName);
await clickSaveButton(page);
await assertNotificationMessage(page, "Mapping successfully created");
await clickCancelButton(page);
}
}
function getUserAttribute(page: Page) {
return page.getByTestId("config.user🍺attribute");
}
function getClaimName(page: Page) {
return page.getByTestId("claim.name");
}
function getClaimJsonType(page: Page) {
return page.getByLabel("Claim JSON Type");
}
export async function fillMapperDetails(
page: Page,
userAttribute: string,
tokenClaimName: string,
jsonType: ClaimJsonType,
) {
await getUserAttribute(page).fill(userAttribute);
await getClaimName(page).fill(tokenClaimName);
await selectItem(page, getClaimJsonType(page), jsonType);
}
export async function assertMapperConfigurationValues(
page: Page,
userAttribute: string,
tokenClaimName: string,
jsonType: ClaimJsonType,
) {
await expect(getUserAttribute(page)).toHaveValue(userAttribute);
await expect(getClaimName(page)).toHaveValue(tokenClaimName);
await assertSelectValue(getClaimJsonType(page), jsonType);
}
export async function removeMappers(page: Page, mapperNames: string[]) {
for (const name of mapperNames) {
await clickRowKebabItem(page, name, "Delete");
await assertNotificationMessage(page, "Mapping successfully deleted");
}
}