keycloak-scim/cypress/integration/realm_test.spec.ts
2022-04-06 11:21:04 +02:00

126 lines
3.9 KiB
TypeScript

import LoginPage from "../support/pages/LoginPage";
import SidebarPage from "../support/pages/admin_console/SidebarPage";
import CreateRealmPage from "../support/pages/admin_console/CreateRealmPage";
import Masthead from "../support/pages/admin_console/Masthead";
import adminClient from "../support/util/AdminClient";
import { keycloakBefore } from "../support/util/keycloak_hooks";
import RealmSettings from "../support/pages/admin_console/configure/realm_settings/RealmSettings";
import ModalUtils from "../support/util/ModalUtils";
const masthead = new Masthead();
const loginPage = new LoginPage();
const sidebarPage = new SidebarPage();
const createRealmPage = new CreateRealmPage();
const realmSettings = new RealmSettings();
const modalUtils = new ModalUtils();
describe("Realms test", () => {
const testRealmName =
"Test realm " + (Math.random() + 1).toString(36).substring(7);
const newRealmName =
"New Test realm " + (Math.random() + 1).toString(36).substring(7);
const editedRealmName =
"Edited Test realm " + (Math.random() + 1).toString(36).substring(7);
describe("Realm creation", () => {
before(() => {
keycloakBefore();
loginPage.logIn();
});
after(() => {
[testRealmName, newRealmName, editedRealmName].map((realm) =>
adminClient.deleteRealm(realm)
);
});
it("should fail creating Master realm", () => {
sidebarPage.goToCreateRealm();
createRealmPage.fillRealmName("master").createRealm();
masthead.checkNotificationMessage(
"Could not create realm Conflict detected. See logs for details"
);
createRealmPage.cancelRealmCreation();
cy.reload();
});
it("should fail creating realm with empty name", () => {
sidebarPage.goToCreateRealm();
createRealmPage.createRealm();
createRealmPage.verifyRealmNameFieldInvalid();
cy.reload();
});
it("should create Test realm", () => {
sidebarPage.goToCreateRealm();
// Test and clear resource field
createRealmPage.fillCodeEditor();
createRealmPage.clearTextField();
createRealmPage.fillRealmName(testRealmName).createRealm();
masthead.checkNotificationMessage("Realm created");
});
it("should create Test Disabled realm", () => {
sidebarPage.goToCreateRealm();
createRealmPage.fillRealmName("Test Disabled").createRealm();
createRealmPage.disableRealm();
masthead.checkNotificationMessage("Realm created");
});
it("Should cancel deleting Test Disabled realm", () => {
sidebarPage.goToRealmSettings();
realmSettings.clickActionMenu();
cy.findByText("Delete").click();
modalUtils.cancelModal();
});
it("Should delete Test Disabled realm", () => {
sidebarPage.goToRealmSettings();
realmSettings.clickActionMenu();
cy.findByText("Delete").click();
modalUtils.confirmModal();
masthead.checkNotificationMessage("The realm has been deleted");
});
it("Should update realms on delete", () => {
sidebarPage.showCurrentRealms(2);
});
it("should create realm from new a realm", () => {
sidebarPage.goToCreateRealm();
createRealmPage.fillRealmName(newRealmName).createRealm();
const fetchUrl = "/admin/realms?briefRepresentation=true";
cy.intercept(fetchUrl).as("fetch");
masthead.checkNotificationMessage("Realm created");
cy.wait(["@fetch"]);
sidebarPage.goToCreateRealm();
createRealmPage.fillRealmName(editedRealmName).createRealm();
masthead.checkNotificationMessage("Realm created");
cy.wait(["@fetch"]);
});
it("Should show current realms", () => {
sidebarPage.showCurrentRealms(4);
});
it("should change to Test realm", () => {
sidebarPage.getCurrentRealm().should("eq", editedRealmName);
sidebarPage
.goToRealm(testRealmName)
.getCurrentRealm()
.should("eq", testRealmName);
});
});
});