mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-25 16:42:34 +00:00
* 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>
101 lines
2.8 KiB
TypeScript
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");
|
|
}
|
|
}
|