2021-09-27 10:04:21 +00:00
|
|
|
/// <reference types="cypress"/>
|
|
|
|
/// <reference types="../../support"/>
|
|
|
|
|
2021-07-23 09:46:44 +00:00
|
|
|
import faker from "faker";
|
|
|
|
|
2023-03-09 08:18:07 +00:00
|
|
|
import { PERMISSION_GROUP_DETAILS_SELECTORS } from "../../elements/permissionGroup/permissionGroupDetails";
|
|
|
|
import { PERMISSION_GROUP_LIST_SELECTORS } from "../../elements/permissionGroup/permissionGroupsList";
|
2021-07-23 09:46:44 +00:00
|
|
|
import { BUTTON_SELECTORS } from "../../elements/shared/button-selectors";
|
|
|
|
import { SHARED_ELEMENTS } from "../../elements/shared/sharedElements";
|
|
|
|
import {
|
|
|
|
permissionGroupDetails,
|
|
|
|
staffMemberDetailsUrl,
|
2022-06-27 16:49:35 +00:00
|
|
|
urlList,
|
2021-09-27 10:04:21 +00:00
|
|
|
} from "../../fixtures/urlList";
|
|
|
|
import { TEST_ADMIN_USER } from "../../fixtures/users.js";
|
|
|
|
import {
|
|
|
|
createPermissionGroup,
|
2022-06-27 16:49:35 +00:00
|
|
|
getPermissionGroup,
|
2021-09-27 10:04:21 +00:00
|
|
|
} from "../../support/api/requests/PermissionGroup.js";
|
|
|
|
import { getStaffMembersStartsWith } from "../../support/api/requests/StaffMembers";
|
2021-07-23 09:46:44 +00:00
|
|
|
|
2022-06-27 09:30:51 +00:00
|
|
|
describe("Permissions groups", () => {
|
2023-05-29 07:15:07 +00:00
|
|
|
const startsWith = "CyPermissions-" + Date.now();
|
2022-11-15 09:55:31 +00:00
|
|
|
const permissionManageProducts = "[MANAGE_PRODUCTS]";
|
2021-07-23 09:46:44 +00:00
|
|
|
|
2022-06-27 09:30:51 +00:00
|
|
|
before(() => {
|
|
|
|
cy.clearSessionData().loginUserViaRequest();
|
|
|
|
});
|
2021-07-23 09:46:44 +00:00
|
|
|
|
2022-06-27 09:30:51 +00:00
|
|
|
beforeEach(() => {
|
|
|
|
cy.clearSessionData().loginUserViaRequest();
|
|
|
|
});
|
2021-07-23 09:46:44 +00:00
|
|
|
|
2022-06-27 09:30:51 +00:00
|
|
|
it(
|
|
|
|
"should create permission group. TC: SALEOR_1401",
|
|
|
|
{ tags: ["@permissions", "@allEnv", "@stable"] },
|
|
|
|
() => {
|
2021-07-23 09:46:44 +00:00
|
|
|
const permissionName = `${startsWith}${faker.datatype.number()}`;
|
2023-07-13 08:34:04 +00:00
|
|
|
cy.addAliasToGraphRequest("PermissionGroupCreate");
|
2021-07-23 09:46:44 +00:00
|
|
|
cy.visit(urlList.permissionsGroups)
|
2023-03-09 08:18:07 +00:00
|
|
|
.get(PERMISSION_GROUP_LIST_SELECTORS.createPermissionButton)
|
2021-07-23 09:46:44 +00:00
|
|
|
.click()
|
2023-03-09 08:18:07 +00:00
|
|
|
.get(PERMISSION_GROUP_DETAILS_SELECTORS.nameInput)
|
2021-07-23 09:46:44 +00:00
|
|
|
.type(permissionName)
|
2023-03-09 08:18:07 +00:00
|
|
|
.get(PERMISSION_GROUP_DETAILS_SELECTORS.productsPermissionCheckbox)
|
2022-11-15 09:55:31 +00:00
|
|
|
.check()
|
2021-07-23 09:46:44 +00:00
|
|
|
.get(
|
2023-03-09 08:18:07 +00:00
|
|
|
PERMISSION_GROUP_DETAILS_SELECTORS.productsTypesAndAttributesPermissionCheckbox,
|
2021-07-23 09:46:44 +00:00
|
|
|
)
|
2022-11-15 09:55:31 +00:00
|
|
|
.check()
|
2021-07-23 09:46:44 +00:00
|
|
|
.get(BUTTON_SELECTORS.confirm)
|
|
|
|
.click()
|
2023-07-13 08:34:04 +00:00
|
|
|
.wait("@PermissionGroupCreate")
|
|
|
|
.then(createPermissionRequest => {
|
|
|
|
const permissionGroupResponse =
|
|
|
|
createPermissionRequest.response.body.data.permissionGroupCreate;
|
|
|
|
expect(permissionGroupResponse.errors).to.have.length(0);
|
|
|
|
expect(permissionGroupResponse.group.name).to.contain(permissionName);
|
|
|
|
expect(permissionGroupResponse.group.permissions).to.have.length(2);
|
|
|
|
});
|
2022-06-27 16:49:35 +00:00
|
|
|
},
|
2022-06-27 09:30:51 +00:00
|
|
|
);
|
2021-07-23 09:46:44 +00:00
|
|
|
|
2022-06-27 09:30:51 +00:00
|
|
|
it(
|
|
|
|
"should delete permission group. TC: SALEOR_1402",
|
2022-11-15 09:55:31 +00:00
|
|
|
{ tags: ["@permissions", "@allEnv", "@stable"] },
|
2022-06-27 09:30:51 +00:00
|
|
|
() => {
|
2023-07-13 08:34:04 +00:00
|
|
|
const permissionName = `A-${startsWith}${faker.datatype.number()}`;
|
2021-07-23 09:46:44 +00:00
|
|
|
let staffMember;
|
2022-11-15 09:55:31 +00:00
|
|
|
|
2021-07-23 09:46:44 +00:00
|
|
|
getStaffMembersStartsWith(TEST_ADMIN_USER.email)
|
|
|
|
.its("body.data.staffUsers.edges")
|
|
|
|
.then(staffMemberResp => {
|
|
|
|
staffMember = staffMemberResp[0].node;
|
2022-11-15 09:55:31 +00:00
|
|
|
|
2021-07-23 09:46:44 +00:00
|
|
|
createPermissionGroup({
|
|
|
|
name: permissionName,
|
|
|
|
userIdsArray: `["${staffMember.id}"]`,
|
2022-11-15 09:55:31 +00:00
|
|
|
permissionsArray: permissionManageProducts,
|
2021-07-23 09:46:44 +00:00
|
|
|
});
|
|
|
|
cy.visit(urlList.permissionsGroups);
|
2023-03-09 08:18:07 +00:00
|
|
|
cy.contains(
|
|
|
|
PERMISSION_GROUP_LIST_SELECTORS.permissionGroupRow,
|
|
|
|
permissionName,
|
|
|
|
)
|
2021-07-23 09:46:44 +00:00
|
|
|
.should("be.visible")
|
|
|
|
.find(BUTTON_SELECTORS.deleteIcon)
|
|
|
|
.click()
|
|
|
|
.get(BUTTON_SELECTORS.submit)
|
|
|
|
.click();
|
2023-03-09 08:18:07 +00:00
|
|
|
cy.contains(
|
|
|
|
PERMISSION_GROUP_LIST_SELECTORS.permissionGroupRow,
|
|
|
|
permissionName,
|
|
|
|
)
|
2021-07-23 09:46:44 +00:00
|
|
|
.should("not.exist")
|
2022-11-15 09:55:31 +00:00
|
|
|
.visit(staffMemberDetailsUrl(staffMember.id))
|
|
|
|
.get(SHARED_ELEMENTS.header)
|
|
|
|
.should("be.visible")
|
|
|
|
.contains(permissionName)
|
|
|
|
.should("not.exist");
|
2021-07-23 09:46:44 +00:00
|
|
|
});
|
2022-06-27 16:49:35 +00:00
|
|
|
},
|
2022-06-27 09:30:51 +00:00
|
|
|
);
|
2021-07-23 09:46:44 +00:00
|
|
|
|
2022-11-15 09:55:31 +00:00
|
|
|
it(
|
2022-06-27 09:30:51 +00:00
|
|
|
"should add user to permission group. TC: SALEOR_1403",
|
2022-11-15 09:55:31 +00:00
|
|
|
{ tags: ["@permissions", "@allEnv", "@stable"] },
|
2022-06-27 09:30:51 +00:00
|
|
|
() => {
|
2021-07-23 09:46:44 +00:00
|
|
|
const permissionName = `${startsWith}${faker.datatype.number()}`;
|
2022-11-15 09:55:31 +00:00
|
|
|
|
2021-07-23 09:46:44 +00:00
|
|
|
createPermissionGroup({
|
|
|
|
name: permissionName,
|
2022-11-15 09:55:31 +00:00
|
|
|
permissionsArray: permissionManageProducts,
|
|
|
|
}).then(({ group }) => {
|
|
|
|
cy.visit(permissionGroupDetails(group.id))
|
2023-03-09 08:18:07 +00:00
|
|
|
.get(PERMISSION_GROUP_DETAILS_SELECTORS.assignMemberButton)
|
2022-11-15 09:55:31 +00:00
|
|
|
.click()
|
2023-03-09 08:18:07 +00:00
|
|
|
.get(PERMISSION_GROUP_DETAILS_SELECTORS.searchField)
|
2022-11-15 09:55:31 +00:00
|
|
|
.type(TEST_ADMIN_USER.email);
|
|
|
|
cy.contains(
|
2023-03-09 08:18:07 +00:00
|
|
|
PERMISSION_GROUP_DETAILS_SELECTORS.userRow,
|
2022-11-15 09:55:31 +00:00
|
|
|
`${TEST_ADMIN_USER.name} ${TEST_ADMIN_USER.lastName}`,
|
|
|
|
)
|
|
|
|
.should("have.length", 1)
|
|
|
|
.find(BUTTON_SELECTORS.checkbox)
|
|
|
|
.check()
|
|
|
|
.get(BUTTON_SELECTORS.submit)
|
|
|
|
.click()
|
|
|
|
.addAliasToGraphRequest("PermissionGroupUpdate")
|
|
|
|
.get(BUTTON_SELECTORS.confirm)
|
|
|
|
.click()
|
|
|
|
.waitForRequestAndCheckIfNoErrors("@PermissionGroupUpdate");
|
|
|
|
getPermissionGroup(group.id)
|
|
|
|
.its("users")
|
|
|
|
.should("have.length", 1)
|
|
|
|
.its("0.email")
|
|
|
|
.should("eq", TEST_ADMIN_USER.email);
|
|
|
|
});
|
2022-06-27 16:49:35 +00:00
|
|
|
},
|
2022-06-27 09:30:51 +00:00
|
|
|
);
|
2021-07-23 09:46:44 +00:00
|
|
|
|
2022-06-27 09:30:51 +00:00
|
|
|
it(
|
|
|
|
"should remove user from permission group. TC: SALEOR_1404",
|
|
|
|
{ tags: ["@permissions", "@allEnv", "@stable"] },
|
|
|
|
() => {
|
2021-07-23 09:46:44 +00:00
|
|
|
const permissionName = `${startsWith}${faker.datatype.number()}`;
|
|
|
|
let staffMember;
|
2022-11-15 09:55:31 +00:00
|
|
|
|
2021-07-23 09:46:44 +00:00
|
|
|
getStaffMembersStartsWith(TEST_ADMIN_USER.email)
|
|
|
|
.its("body.data.staffUsers.edges")
|
|
|
|
.then(staffMemberResp => {
|
|
|
|
staffMember = staffMemberResp[0].node;
|
2022-11-15 09:55:31 +00:00
|
|
|
|
2021-07-23 09:46:44 +00:00
|
|
|
createPermissionGroup({
|
|
|
|
name: permissionName,
|
|
|
|
userIdsArray: `["${staffMember.id}"]`,
|
2022-11-15 09:55:31 +00:00
|
|
|
permissionsArray: permissionManageProducts,
|
2021-07-23 09:46:44 +00:00
|
|
|
});
|
|
|
|
})
|
|
|
|
.then(({ group }) => {
|
|
|
|
cy.visit(permissionGroupDetails(group.id))
|
2023-03-09 08:18:07 +00:00
|
|
|
.get(PERMISSION_GROUP_DETAILS_SELECTORS.removeUserButton)
|
2021-07-23 09:46:44 +00:00
|
|
|
.click()
|
|
|
|
.get(BUTTON_SELECTORS.submit)
|
|
|
|
.click()
|
|
|
|
.addAliasToGraphRequest("PermissionGroupUpdate")
|
|
|
|
.get(BUTTON_SELECTORS.confirm)
|
|
|
|
.click()
|
2021-09-27 10:04:21 +00:00
|
|
|
.waitForRequestAndCheckIfNoErrors("@PermissionGroupUpdate");
|
2022-11-15 09:55:31 +00:00
|
|
|
cy.visit(staffMemberDetailsUrl(staffMember.id))
|
|
|
|
.get(SHARED_ELEMENTS.header)
|
|
|
|
.should("be.visible")
|
|
|
|
.contains(permissionName)
|
|
|
|
.should("not.exist");
|
2021-07-23 09:46:44 +00:00
|
|
|
});
|
2022-06-27 16:49:35 +00:00
|
|
|
},
|
2022-06-27 09:30:51 +00:00
|
|
|
);
|
2021-07-23 09:46:44 +00:00
|
|
|
});
|