181 lines
6 KiB
TypeScript
181 lines
6 KiB
TypeScript
import SidebarPage from "../support/pages/admin_console/SidebarPage";
|
|
import LoginPage from "../support/pages/LoginPage";
|
|
import RealmSettingsPage from "../support/pages/admin_console/manage/realm_settings/RealmSettingsPage";
|
|
import {
|
|
keycloakBefore,
|
|
keycloakBeforeEach,
|
|
} from "../support/util/keycloak_hooks";
|
|
import adminClient from "../support/util/AdminClient";
|
|
import ModalUtils from "../support/util/ModalUtils";
|
|
import Masthead from "../support/pages/admin_console/Masthead";
|
|
|
|
const loginPage = new LoginPage();
|
|
const sidebarPage = new SidebarPage();
|
|
const modalUtils = new ModalUtils();
|
|
const masthead = new Masthead();
|
|
|
|
describe("Realm settings client profiles tab tests", () => {
|
|
const profileName = "Test";
|
|
const editedProfileName = "Edit";
|
|
const realmName = "Realm_" + (Math.random() + 1).toString(36).substring(7);
|
|
const realmSettingsPage = new RealmSettingsPage(realmName);
|
|
|
|
beforeEach(() => {
|
|
keycloakBeforeEach();
|
|
sidebarPage.waitForPageLoad().goToRealm(realmName).goToRealmSettings();
|
|
realmSettingsPage.goToClientPoliciesTab().goToClientProfilesList();
|
|
});
|
|
|
|
before(() => {
|
|
keycloakBefore();
|
|
adminClient.createRealm(realmName);
|
|
loginPage.logIn();
|
|
});
|
|
|
|
after(async () => {
|
|
await adminClient.deleteRealm(realmName);
|
|
});
|
|
|
|
it("Go to client policies profiles tab", () => {
|
|
realmSettingsPage.shouldDisplayProfilesTab();
|
|
});
|
|
|
|
it("Check new client form is displaying", () => {
|
|
realmSettingsPage.shouldDisplayNewClientProfileForm();
|
|
});
|
|
|
|
it("Complete new client form and cancel", () => {
|
|
realmSettingsPage
|
|
.createClientProfile(profileName, "Test Description")
|
|
.cancelClientProfileCreation()
|
|
.checkElementNotInList(profileName);
|
|
});
|
|
|
|
it("Complete new client form and submit", () => {
|
|
const url = `/auth/admin/realms/${realmName}/client-policies/profiles`;
|
|
cy.intercept("PUT", url).as("save");
|
|
realmSettingsPage
|
|
.createClientProfile(profileName, "Test Description")
|
|
.saveClientProfileCreation();
|
|
cy.wait("@save");
|
|
masthead.checkNotificationMessage("New client profile created");
|
|
});
|
|
|
|
it("Should perform client profile search by profile name", () => {
|
|
realmSettingsPage.searchClientProfile(profileName);
|
|
});
|
|
|
|
it("Check navigating between Form View and JSON editor", () => {
|
|
realmSettingsPage.shouldNavigateBetweenFormAndJSONView();
|
|
});
|
|
|
|
it("Check saving changed JSON profiles", () => {
|
|
realmSettingsPage.shouldSaveChangedJSONProfiles();
|
|
realmSettingsPage.deleteClientPolicyItemFromTable(profileName);
|
|
modalUtils.confirmModal();
|
|
masthead.checkNotificationMessage("Client profile deleted");
|
|
realmSettingsPage.checkElementNotInList(profileName);
|
|
});
|
|
|
|
it("Should not create duplicate client profile", () => {
|
|
const url = `/auth/admin/realms/${realmName}/client-policies/profiles`;
|
|
cy.intercept("PUT", url).as("save");
|
|
realmSettingsPage
|
|
.createClientProfile(profileName, "Test Description")
|
|
.saveClientProfileCreation();
|
|
cy.wait("@save");
|
|
|
|
sidebarPage.goToRealmSettings();
|
|
realmSettingsPage.goToClientPoliciesTab().goToClientProfilesList();
|
|
|
|
sidebarPage.waitForPageLoad();
|
|
realmSettingsPage
|
|
.createClientProfile(profileName, "Test Description")
|
|
.saveClientProfileCreation();
|
|
cy.wait("@save");
|
|
masthead.checkNotificationMessage(
|
|
"Could not create client profile: 'proposed client profile name duplicated.'"
|
|
);
|
|
});
|
|
|
|
it("Should edit client profile", () => {
|
|
realmSettingsPage.shouldEditClientProfile();
|
|
});
|
|
|
|
it("Should check that edited client profile is now listed", () => {
|
|
sidebarPage.goToRealmSettings();
|
|
realmSettingsPage
|
|
.goToClientPoliciesTab()
|
|
.goToClientProfilesList()
|
|
.shouldCheckEditedClientProfileListed();
|
|
});
|
|
|
|
it("Should show error when client profile left blank", () => {
|
|
realmSettingsPage.shouldShowErrorWhenNameBlank();
|
|
});
|
|
|
|
it("Should revert back to the previous profile name", () => {
|
|
realmSettingsPage.shouldReloadClientProfileEdits();
|
|
});
|
|
|
|
it("Should not have executors configured by default", () => {
|
|
realmSettingsPage.shouldNotHaveExecutorsConfigured();
|
|
});
|
|
|
|
it("Should cancel adding a new executor to a client profile", () => {
|
|
realmSettingsPage.shouldCancelAddingExecutor();
|
|
});
|
|
|
|
it("Should add a new executor to a client profile", () => {
|
|
realmSettingsPage.shouldAddExecutor();
|
|
});
|
|
|
|
it("Should cancel deleting executor from a client profile", () => {
|
|
realmSettingsPage.shouldCancelDeletingExecutor();
|
|
});
|
|
|
|
it("Should cancel editing executor", () => {
|
|
realmSettingsPage.openProfileDetails(editedProfileName).editExecutor(4000);
|
|
sidebarPage.waitForPageLoad();
|
|
realmSettingsPage
|
|
.cancelEditingExecutor()
|
|
.checkExecutorNotInList()
|
|
.editExecutor()
|
|
.checkAvailablePeriodExecutor(3600);
|
|
});
|
|
|
|
it("Should edit executor", () => {
|
|
realmSettingsPage
|
|
.openProfileDetails(editedProfileName)
|
|
.editExecutor(4000)
|
|
.saveExecutor();
|
|
masthead.checkNotificationMessage("Executor updated successfully");
|
|
realmSettingsPage.editExecutor();
|
|
// TODO: UNCOMMENT LINE WHEN ISSUE 2037 IS FIXED
|
|
//.checkAvailablePeriodExecutor(4000);
|
|
});
|
|
|
|
it("Should delete executor from a client profile", () => {
|
|
realmSettingsPage.shouldDeleteExecutor();
|
|
});
|
|
|
|
it("Check cancelling the client profile deletion", () => {
|
|
realmSettingsPage.deleteClientPolicyItemFromTable(editedProfileName);
|
|
modalUtils
|
|
.checkModalMessage(
|
|
"This action will permanently delete the profile " +
|
|
editedProfileName +
|
|
". This cannot be undone."
|
|
)
|
|
.cancelModal();
|
|
realmSettingsPage.checkElementInList(editedProfileName);
|
|
});
|
|
|
|
it("Check deleting the client profile", () => {
|
|
realmSettingsPage.deleteClientPolicyItemFromTable(editedProfileName);
|
|
modalUtils.confirmModal();
|
|
masthead.checkNotificationMessage("Client profile deleted");
|
|
sidebarPage.waitForPageLoad();
|
|
realmSettingsPage.checkElementNotInList(editedProfileName);
|
|
});
|
|
});
|