166 lines
4.8 KiB
TypeScript
166 lines
4.8 KiB
TypeScript
|
import LoginPage from "../support/pages/LoginPage";
|
||
|
import Masthead from "../support/pages/admin_console/Masthead";
|
||
|
import ListingPage from "../support/pages/admin_console/ListingPage";
|
||
|
import SidebarPage from "../support/pages/admin_console/SidebarPage";
|
||
|
import ModalUtils from "../support/util/ModalUtils";
|
||
|
import AdminClient from "../support/util/AdminClient";
|
||
|
import { keycloakBefore } from "../support/util/keycloak_before";
|
||
|
import AuthenticationTab from "../support/pages/admin_console/manage/clients/Authentication";
|
||
|
|
||
|
const loginPage = new LoginPage();
|
||
|
const masthead = new Masthead();
|
||
|
const sidebarPage = new SidebarPage();
|
||
|
const listingPage = new ListingPage();
|
||
|
const modalUtils = new ModalUtils();
|
||
|
|
||
|
describe("Clients SAML tests", () => {
|
||
|
describe("SAML test", () => {
|
||
|
const samlClientName = "saml";
|
||
|
|
||
|
before(() => {
|
||
|
new AdminClient().createClient({
|
||
|
protocol: "saml",
|
||
|
clientId: samlClientName,
|
||
|
publicClient: false,
|
||
|
});
|
||
|
});
|
||
|
|
||
|
after(() => {
|
||
|
new AdminClient().deleteClient(samlClientName);
|
||
|
});
|
||
|
|
||
|
beforeEach(() => {
|
||
|
keycloakBefore();
|
||
|
loginPage.logIn();
|
||
|
sidebarPage.goToClients();
|
||
|
listingPage.searchItem(samlClientName).goToItemDetails(samlClientName);
|
||
|
});
|
||
|
|
||
|
it("should display the saml sections on details screen", () => {
|
||
|
cy.get(".pf-c-jump-links__list").should(($ul) => {
|
||
|
expect($ul)
|
||
|
.to.contain("SAML capabilities")
|
||
|
.to.contain("Signature and Encryption");
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it("should save force name id format", () => {
|
||
|
const load = "auth/admin/realms/master/client-scopes";
|
||
|
cy.intercept(load).as("load");
|
||
|
|
||
|
cy.get(".pf-c-jump-links__list").contains("SAML capabilities").click();
|
||
|
cy.wait("@load");
|
||
|
|
||
|
cy.findByTestId("forceNameIdFormat").click({
|
||
|
force: true,
|
||
|
});
|
||
|
cy.findByTestId("settingsSave").click();
|
||
|
masthead.checkNotificationMessage("Client successfully updated");
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("SAML keys tab", () => {
|
||
|
const clientId = "saml-keys";
|
||
|
|
||
|
before(() => {
|
||
|
new AdminClient().createClient({
|
||
|
clientId,
|
||
|
protocol: "saml",
|
||
|
});
|
||
|
});
|
||
|
|
||
|
after(() => {
|
||
|
new AdminClient().deleteClient(clientId);
|
||
|
});
|
||
|
|
||
|
beforeEach(() => {
|
||
|
keycloakBefore();
|
||
|
loginPage.logIn();
|
||
|
sidebarPage.goToClients();
|
||
|
listingPage.searchItem(clientId).goToItemDetails(clientId);
|
||
|
cy.get("#pf-tab-keys-keys").click();
|
||
|
});
|
||
|
|
||
|
it("doesn't disable when no", () => {
|
||
|
cy.findByTestId("clientSignature").click({ force: true });
|
||
|
|
||
|
modalUtils
|
||
|
.checkModalTitle('Disable "Client signature required"')
|
||
|
.cancelModal();
|
||
|
|
||
|
cy.findAllByTestId("certificate").should("have.length", 1);
|
||
|
});
|
||
|
|
||
|
it("disable client signature", () => {
|
||
|
cy.findByTestId("clientSignature").click({ force: true });
|
||
|
|
||
|
modalUtils
|
||
|
.checkModalTitle('Disable "Client signature required"')
|
||
|
.confirmModal();
|
||
|
|
||
|
masthead.checkNotificationMessage("Client successfully updated");
|
||
|
cy.findAllByTestId("certificate").should("have.length", 0);
|
||
|
});
|
||
|
|
||
|
it("should enable Encryption keys config", () => {
|
||
|
cy.findByTestId("encryptAssertions").click({ force: true });
|
||
|
|
||
|
cy.findByTestId("generate").click();
|
||
|
masthead.checkNotificationMessage(
|
||
|
"New key pair and certificate generated successfully"
|
||
|
);
|
||
|
|
||
|
modalUtils.confirmModal();
|
||
|
cy.findAllByTestId("certificate").should("have.length", 1);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("Authentication tab", () => {
|
||
|
const clientName = "authenticationTabClient";
|
||
|
const authenticationTab = new AuthenticationTab();
|
||
|
beforeEach(() => {
|
||
|
keycloakBefore();
|
||
|
loginPage.logIn();
|
||
|
sidebarPage.goToClients();
|
||
|
});
|
||
|
|
||
|
before(async () => {
|
||
|
await new AdminClient().createClient({
|
||
|
protocol: "openid-connect",
|
||
|
clientId: clientName,
|
||
|
publicClient: false,
|
||
|
authorizationServicesEnabled: true,
|
||
|
serviceAccountsEnabled: true,
|
||
|
standardFlowEnabled: true,
|
||
|
});
|
||
|
});
|
||
|
|
||
|
after(() => {
|
||
|
new AdminClient().deleteClient(clientName);
|
||
|
});
|
||
|
|
||
|
it("Should update the resource server settings", () => {
|
||
|
listingPage.searchItem(clientName).goToItemDetails(clientName);
|
||
|
authenticationTab.goToTab();
|
||
|
});
|
||
|
|
||
|
it("Should create a resource", () => {
|
||
|
listingPage.searchItem(clientName).goToItemDetails(clientName);
|
||
|
authenticationTab.goToTab().goToResourceSubTab();
|
||
|
authenticationTab.assertDefaultResource();
|
||
|
|
||
|
authenticationTab
|
||
|
.goToCreateResource()
|
||
|
.fillResourceForm({
|
||
|
name: "Resource",
|
||
|
displayName: "The display name",
|
||
|
type: "type",
|
||
|
uris: ["one", "two"],
|
||
|
})
|
||
|
.save();
|
||
|
|
||
|
masthead.checkNotificationMessage("Resource created successfully");
|
||
|
});
|
||
|
});
|
||
|
});
|