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

81 lines
2.6 KiB
TypeScript
Raw Normal View History

2021-01-27 12:56:28 +00:00
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 CreateClientScopePage from "../support/pages/admin_console/manage/client_scopes/CreateClientScopePage";
import { keycloakBefore } from "../support/util/keycloak_before";
import RoleMappingTab from "../support/pages/admin_console/manage/RoleMappingTab";
let itemId = "client_scope_crud";
const loginPage = new LoginPage();
const masthead = new Masthead();
const sidebarPage = new SidebarPage();
const listingPage = new ListingPage();
const createClientScopePage = new CreateClientScopePage();
describe("Client Scopes test", function () {
describe("Client Scope creation", function () {
beforeEach(function () {
keycloakBefore();
loginPage.logIn();
sidebarPage.goToClientScopes();
2021-01-25 17:17:59 +00:00
});
2021-01-25 17:17:59 +00:00
it("should fail creating client scope", function () {
listingPage.goToCreateItem();
createClientScopePage.save().checkClientNameRequiredMessage();
createClientScopePage
.fillClientScopeData("address")
.save()
.checkClientNameRequiredMessage(false);
// The error should inform about duplicated name/id
masthead.checkNotificationMessage(
"Could not create client scope: 'Error: Request failed with status code 409'"
);
});
2021-01-27 12:56:28 +00:00
it("Client scope CRUD test", () => {
2021-01-25 17:17:59 +00:00
itemId += "_" + (Math.random() + 1).toString(36).substring(7);
2021-01-25 17:17:59 +00:00
// Create
2021-01-27 12:56:28 +00:00
listingPage.itemExist(itemId, false).goToCreateItem();
2021-01-27 12:56:28 +00:00
createClientScopePage.fillClientScopeData(itemId).save();
masthead.checkNotificationMessage("Client scope created");
sidebarPage.goToClientScopes();
2021-01-25 17:17:59 +00:00
// Delete
2021-01-27 12:56:28 +00:00
listingPage.itemExist(itemId).deleteItem(itemId); // There should be a confirmation pop-up
masthead.checkNotificationMessage("The client scope has been deleted");
2021-01-25 17:17:59 +00:00
listingPage // It is not refreshing after delete
.itemExist(itemId, false);
});
});
describe("Scope test", () => {
const scopeTab = new RoleMappingTab();
const scopeName = "address";
beforeEach(() => {
keycloakBefore();
loginPage.logIn();
sidebarPage.goToClientScopes();
});
it("assignRole", () => {
const role = "offline_access";
listingPage.searchItem(scopeName, false).goToItemDetails(scopeName);
scopeTab.goToScopeTab().clickAssignRole().selectRow(role).clickAssign();
masthead.checkNotificationMessage("Role mapping updated");
scopeTab.checkRoles([role]);
});
});
2021-01-27 12:56:28 +00:00
});