5142d1b4bc
* can't move groups to the root level disabled "Move" button on root level * can now move groups to root * added move to root test
178 lines
5.7 KiB
TypeScript
178 lines
5.7 KiB
TypeScript
import ListingPage from "../support/pages/admin_console/ListingPage";
|
|
import GroupModal from "../support/pages/admin_console/manage/groups/GroupModal";
|
|
import GroupDetailPage from "../support/pages/admin_console/manage/groups/GroupDetailPage";
|
|
import MoveGroupModal from "../support/pages/admin_console/manage/groups/MoveGroupModal";
|
|
import { SearchGroupPage } from "../support/pages/admin_console/manage/groups/SearchGroup";
|
|
import Masthead from "../support/pages/admin_console/Masthead";
|
|
import SidebarPage from "../support/pages/admin_console/SidebarPage";
|
|
import LoginPage from "../support/pages/LoginPage";
|
|
import ViewHeaderPage from "../support/pages/ViewHeaderPage";
|
|
import AdminClient from "../support/util/AdminClient";
|
|
import { keycloakBefore } from "../support/util/keycloak_before";
|
|
|
|
describe("Group test", () => {
|
|
const loginPage = new LoginPage();
|
|
const masthead = new Masthead();
|
|
const sidebarPage = new SidebarPage();
|
|
const listingPage = new ListingPage();
|
|
const viewHeaderPage = new ViewHeaderPage();
|
|
const groupModal = new GroupModal();
|
|
const searchGroupPage = new SearchGroupPage();
|
|
const moveGroupModal = new MoveGroupModal();
|
|
|
|
let groupName = "group";
|
|
|
|
describe("Group creation", () => {
|
|
beforeEach(function () {
|
|
keycloakBefore();
|
|
loginPage.logIn();
|
|
sidebarPage.goToGroups();
|
|
});
|
|
|
|
it("Group CRUD test", () => {
|
|
groupName += "_" + (Math.random() + 1).toString(36).substring(7);
|
|
|
|
groupModal
|
|
.open("empty-primary-action")
|
|
.fillGroupForm(groupName)
|
|
.clickCreate();
|
|
|
|
masthead.checkNotificationMessage("Group created");
|
|
|
|
sidebarPage.goToGroups();
|
|
listingPage.searchItem(groupName, false).itemExist(groupName);
|
|
|
|
// Delete
|
|
listingPage.deleteItem(groupName);
|
|
masthead.checkNotificationMessage("Group deleted");
|
|
});
|
|
|
|
it("Should rename group", () => {
|
|
groupModal
|
|
.open("empty-primary-action")
|
|
.fillGroupForm(groupName)
|
|
.clickCreate();
|
|
listingPage.goToItemDetails(groupName);
|
|
viewHeaderPage.clickAction("renameGroupAction");
|
|
|
|
const newName = "Renamed group";
|
|
groupModal.fillGroupForm(newName).clickRename();
|
|
masthead.checkNotificationMessage("Group updated");
|
|
|
|
sidebarPage.goToGroups();
|
|
listingPage.searchItem(newName, false).itemExist(newName);
|
|
listingPage.deleteItem(newName);
|
|
});
|
|
|
|
it("Group search", () => {
|
|
viewHeaderPage.clickAction("searchGroup");
|
|
searchGroupPage.searchGroup("group").clickSearchButton();
|
|
searchGroupPage.checkTerm("group");
|
|
});
|
|
|
|
it("Should move group", () => {
|
|
const targetGroupName = "target";
|
|
groupModal
|
|
.open("empty-primary-action")
|
|
.fillGroupForm(groupName)
|
|
.clickCreate();
|
|
|
|
groupModal.open().fillGroupForm(targetGroupName).clickCreate();
|
|
|
|
listingPage.clickRowDetails(groupName).clickDetailMenu("Move to");
|
|
moveGroupModal
|
|
.clickRow(targetGroupName)
|
|
.checkTitle(`Move ${groupName} to ${targetGroupName}`);
|
|
moveGroupModal.clickMove();
|
|
|
|
masthead.checkNotificationMessage("Group moved");
|
|
listingPage
|
|
.itemExist(groupName, false)
|
|
.goToItemDetails(targetGroupName)
|
|
.itemExist(targetGroupName);
|
|
|
|
sidebarPage.goToGroups();
|
|
listingPage.deleteItem(targetGroupName);
|
|
});
|
|
|
|
it("Should move group to root", async () => {
|
|
const groups = ["group1", "group2"];
|
|
await new AdminClient().createSubGroups(groups);
|
|
sidebarPage.goToGroups();
|
|
listingPage.goToItemDetails(groups[0]);
|
|
cy.wait(2000);
|
|
listingPage.clickRowDetails(groups[1]).clickDetailMenu("Move to");
|
|
|
|
moveGroupModal.clickRoot().clickMove();
|
|
sidebarPage.goToGroups();
|
|
|
|
new GroupDetailPage().checkListSubGroup(groups);
|
|
listingPage.deleteItem(groups[0]);
|
|
});
|
|
});
|
|
|
|
describe("Group details", () => {
|
|
const groups = ["level", "level1", "level2"];
|
|
const detailPage = new GroupDetailPage();
|
|
|
|
before(async () => {
|
|
const client = new AdminClient();
|
|
const createdGroups = await client.createSubGroups(groups);
|
|
for (let i = 0; i < 5; i++) {
|
|
const username = "user" + i;
|
|
client.createUserInGroup(username, createdGroups[i % 3].id);
|
|
}
|
|
client.createUser({ username: "new", enabled: true });
|
|
});
|
|
|
|
beforeEach(() => {
|
|
cy.visit("");
|
|
loginPage.logIn();
|
|
sidebarPage.goToGroups();
|
|
});
|
|
|
|
after(() => {
|
|
new AdminClient().deleteGroups();
|
|
});
|
|
|
|
it("Should display all the subgroups", () => {
|
|
listingPage.goToItemDetails(groups[0]);
|
|
detailPage.checkListSubGroup([groups[1]]);
|
|
|
|
const added = "addedGroup";
|
|
groupModal.open().fillGroupForm(added).clickCreate();
|
|
|
|
detailPage.checkListSubGroup([added, groups[1]]);
|
|
});
|
|
|
|
it("Should display members", () => {
|
|
listingPage.goToItemDetails(groups[0]);
|
|
detailPage.clickMembersTab().checkListMembers(["user0", "user3"]);
|
|
detailPage
|
|
.clickIncludeSubGroups()
|
|
.checkListMembers(["user0", "user3", "user1", "user4", "user2"]);
|
|
});
|
|
|
|
it("Should add members", () => {
|
|
listingPage.goToItemDetails(groups[0]);
|
|
detailPage
|
|
.clickMembersTab()
|
|
.clickAddMembers()
|
|
.checkSelectableMembers(["user1", "user4"]);
|
|
detailPage.selectUsers(["new"]).clickAdd();
|
|
|
|
masthead.checkNotificationMessage("1 user added to the group");
|
|
detailPage.checkListMembers(["new", "user0", "user3"]);
|
|
});
|
|
|
|
it("Attributes CRUD test", () => {
|
|
listingPage.goToItemDetails(groups[0]);
|
|
detailPage
|
|
.clickAttributesTab()
|
|
.fillAttribute("key", "value")
|
|
.saveAttribute();
|
|
|
|
masthead.checkNotificationMessage("Group updated");
|
|
});
|
|
});
|
|
});
|