keycloak-scim/js/apps/admin-ui/cypress/e2e/authentication_policies_ciba.spec.ts

85 lines
2.9 KiB
TypeScript

import { v4 as uuid } from "uuid";
import Form from "../support/forms/Form";
import FormValidation from "../support/forms/FormValidation";
import Select from "../support/forms/Select";
import CIBAPolicyPage from "../support/pages/admin-ui/manage/authentication/CIBAPolicyPage";
import SidebarPage from "../support/pages/admin-ui/SidebarPage";
import LoginPage from "../support/pages/LoginPage";
import adminClient from "../support/util/AdminClient";
import { keycloakBefore } from "../support/util/keycloak_hooks";
const loginPage = new LoginPage();
const sidebarPage = new SidebarPage();
describe("Authentication - Policies - CIBA", () => {
const realmName = uuid();
before(() => adminClient.createRealm(realmName));
after(() => adminClient.deleteRealm(realmName));
beforeEach(() => {
loginPage.logIn();
keycloakBefore();
sidebarPage.goToRealm(realmName);
sidebarPage.goToAuthentication();
CIBAPolicyPage.goToTab();
});
it("displays the initial state", () => {
Select.assertSelectedItem(
CIBAPolicyPage.getBackchannelTokenDeliveryModeSelect(),
"Poll"
);
CIBAPolicyPage.getExpiresInput().should("have.value", "120");
CIBAPolicyPage.getIntervalInput().should("have.value", "5");
Form.assertSaveButtonDisabled();
});
it("validates the fields", () => {
// Required fields.
CIBAPolicyPage.getExpiresInput().clear();
CIBAPolicyPage.getIntervalInput().clear();
FormValidation.assertRequired(CIBAPolicyPage.getExpiresInput());
FormValidation.assertRequired(CIBAPolicyPage.getIntervalInput());
Form.assertSaveButtonDisabled();
// Fields with minimum value.
CIBAPolicyPage.getExpiresInput().type("9");
CIBAPolicyPage.getIntervalInput().type("-1");
FormValidation.assertMinValue(CIBAPolicyPage.getExpiresInput(), 10);
FormValidation.assertMinValue(CIBAPolicyPage.getIntervalInput(), 0);
Form.assertSaveButtonDisabled();
// Fields with maximum value.
CIBAPolicyPage.getExpiresInput().clear().type("601");
CIBAPolicyPage.getIntervalInput().clear().type("601");
FormValidation.assertMaxValue(CIBAPolicyPage.getExpiresInput(), 600);
FormValidation.assertMaxValue(CIBAPolicyPage.getIntervalInput(), 600);
Form.assertSaveButtonDisabled();
});
it("saves the form", () => {
// Select new values for fields.
Select.selectItem(
CIBAPolicyPage.getBackchannelTokenDeliveryModeSelect(),
"Ping"
);
CIBAPolicyPage.getExpiresInput().clear().type("140");
CIBAPolicyPage.getIntervalInput().clear().type("20");
// Save form.
Form.clickSaveButton();
CIBAPolicyPage.assertSaveSuccess();
// Assert values are saved.
Select.assertSelectedItem(
CIBAPolicyPage.getBackchannelTokenDeliveryModeSelect(),
"Ping"
);
CIBAPolicyPage.getExpiresInput().should("have.value", "140");
CIBAPolicyPage.getIntervalInput().should("have.value", "20");
});
});