keycloak-scim/cypress/integration/user_fed_kerberos_test.spec.ts

159 lines
5.6 KiB
TypeScript
Raw Normal View History

2021-02-15 19:35:25 +00:00
import LoginPage from "../support/pages/LoginPage";
import SidebarPage from "../support/pages/admin_console/SidebarPage";
import CreateKerberosProviderPage from "../support/pages/admin_console/manage/providers/CreateKerberosProviderPage";
import Masthead from "../support/pages/admin_console/Masthead";
import ModalUtils from "../support/util/ModalUtils";
2021-02-15 19:35:25 +00:00
const loginPage = new LoginPage();
const masthead = new Masthead();
2021-02-15 19:35:25 +00:00
const sidebarPage = new SidebarPage();
const providersPage = new CreateKerberosProviderPage();
const modalUtils = new ModalUtils();
const firstKerberosName = "my-kerberos";
const firstKerberosRealm = "my-realm";
const firstKerberosPrincipal = "my-principal";
const firstKerberosKeytab = "my-keytab";
const secondKerberosName = `${firstKerberosName}-2`;
const secondKerberosRealm = `${firstKerberosRealm}-2`;
const secondKerberosPrincipal = `${firstKerberosPrincipal}-2`;
const secondKerberosKeytab = `${firstKerberosKeytab}-2`;
const defaultPolicy = "DEFAULT";
const newPolicy = "EVICT_WEEKLY";
const defaultKerberosDay = "Sunday";
const defaultKerberosHour = "00";
const defaultKerberosMinute = "00";
const newKerberosDay = "Wednesday";
const newKerberosHour = "15";
const newKerberosMinute = "55";
const createdSuccessMessage = "User federation provider successfully created";
const savedSuccessMessage = "User federation provider successfully saved";
const deletedSuccessMessage = "The user federation provider has been deleted.";
const deleteModalTitle = "Delete user federation provider?";
const disableModalTitle = "Disable user federation provider?";
describe("User Fed Kerberos tests", () => {
2021-03-05 16:36:49 +00:00
beforeEach(() => {
/*
Prevent unpredictable 401 errors from failing individual tests.
These are most often occurring during the login process:
GET /admin/serverinfo/
GET /admin/master/console/whoami
*/
cy.on("uncaught:exception", (err, runnable) => {
return false;
});
cy.visit("");
loginPage.logIn();
sidebarPage.goToUserFederation();
});
2021-03-05 16:36:49 +00:00
it("Create Kerberos provider from empty state", () => {
providersPage.clickNewCard("kerberos");
providersPage.fillKerberosRequiredData(
firstKerberosName,
firstKerberosRealm,
firstKerberosPrincipal,
firstKerberosKeytab
);
providersPage.save();
2021-02-15 19:35:25 +00:00
masthead.checkNotificationMessage(createdSuccessMessage);
sidebarPage.goToUserFederation();
});
2021-02-15 19:35:25 +00:00
it("Update an existing Kerberos provider and save", () => {
2021-03-05 16:36:49 +00:00
providersPage.clickExistingCard(firstKerberosName);
providersPage.selectCacheType(newPolicy);
2021-03-05 16:36:49 +00:00
providersPage.changeTime(defaultKerberosDay, newKerberosDay);
providersPage.changeTime(defaultKerberosHour, newKerberosHour);
providersPage.changeTime(defaultKerberosMinute, newKerberosMinute);
providersPage.save();
2021-02-15 19:35:25 +00:00
2021-03-05 16:36:49 +00:00
masthead.checkNotificationMessage(savedSuccessMessage);
sidebarPage.goToUserFederation();
2021-03-05 16:36:49 +00:00
providersPage.clickExistingCard(firstKerberosName);
expect(cy.contains(newPolicy).should("exist"));
expect(cy.contains(defaultPolicy).should("not.exist"));
});
it("Change existing Kerberos provider and click button to cancel", () => {
2021-03-05 16:36:49 +00:00
providersPage.clickExistingCard(firstKerberosName);
providersPage.selectCacheType(newPolicy);
2021-03-05 16:36:49 +00:00
providersPage.changeTime(newKerberosDay, defaultKerberosDay);
providersPage.changeTime(newKerberosHour, defaultKerberosHour);
providersPage.changeTime(newKerberosMinute, defaultKerberosMinute);
providersPage.cancel();
cy.wait(1000);
2021-03-05 16:36:49 +00:00
providersPage.clickExistingCard(firstKerberosName);
providersPage.selectCacheType(newPolicy);
2021-02-15 19:35:25 +00:00
expect(cy.contains(newKerberosDay).should("exist"));
expect(cy.contains(newKerberosHour).should("exist"));
expect(cy.contains(newKerberosMinute).should("exist"));
expect(cy.contains(defaultKerberosMinute).should("not.exist"));
2021-02-15 19:35:25 +00:00
sidebarPage.goToUserFederation();
});
2021-02-15 19:35:25 +00:00
it("Disable an existing Kerberos provider", () => {
2021-03-05 16:36:49 +00:00
providersPage.clickExistingCard(firstKerberosName);
providersPage.disableEnabledSwitch();
2021-02-15 19:35:25 +00:00
modalUtils.checkModalTitle(disableModalTitle).confirmModal();
2021-02-15 19:35:25 +00:00
masthead.checkNotificationMessage(savedSuccessMessage);
sidebarPage.goToUserFederation();
masthead.checkNotificationMessage(savedSuccessMessage);
2021-02-15 19:35:25 +00:00
sidebarPage.goToUserFederation();
expect(cy.contains("Disabled").should("exist"));
});
2021-02-15 19:35:25 +00:00
it("Enable an existing previously-disabled Kerberos provider", () => {
2021-03-05 16:36:49 +00:00
providersPage.clickExistingCard(firstKerberosName);
providersPage.enableEnabledSwitch();
2021-03-05 16:36:49 +00:00
masthead.checkNotificationMessage(savedSuccessMessage);
2021-02-15 19:35:25 +00:00
sidebarPage.goToUserFederation();
expect(cy.contains("Enabled").should("exist"));
});
2021-02-15 19:35:25 +00:00
it("Create new Kerberos provider using the New Provider dropdown", () => {
2021-03-05 16:36:49 +00:00
providersPage.clickMenuCommand("Add new provider", "Kerberos");
providersPage.fillKerberosRequiredData(
secondKerberosName,
secondKerberosRealm,
secondKerberosPrincipal,
secondKerberosKeytab
);
providersPage.save();
2021-03-05 16:36:49 +00:00
masthead.checkNotificationMessage(createdSuccessMessage);
sidebarPage.goToUserFederation();
});
it("Delete a Kerberos provider from card view using the card's menu", () => {
2021-03-05 16:36:49 +00:00
providersPage.deleteCardFromCard(secondKerberosName);
modalUtils.checkModalTitle(deleteModalTitle).confirmModal();
masthead.checkNotificationMessage(deletedSuccessMessage);
});
it("Delete a Kerberos provider using the Settings view's Action menu", () => {
2021-03-05 16:36:49 +00:00
providersPage.deleteCardFromMenu("kerberos", firstKerberosName);
modalUtils.checkModalTitle(deleteModalTitle).confirmModal();
masthead.checkNotificationMessage(deletedSuccessMessage);
});
});