Skip to content

Commit

Permalink
FAT-18023: test added (#4623)
Browse files Browse the repository at this point in the history
  • Loading branch information
zentestuken authored Jan 13, 2025
1 parent 14f05e1 commit c2c1900
Show file tree
Hide file tree
Showing 2 changed files with 200 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
import Users from '../../../support/fragments/users/users';
import TopMenu from '../../../support/fragments/topMenu';
import getRandomPostfix from '../../../support/utils/stringTools';
import AuthorizationRoles from '../../../support/fragments/settings/authorization-roles/authorizationRoles';
import { CAPABILITY_TYPES, CAPABILITY_ACTIONS } from '../../../support/constants';

describe('Eureka', () => {
describe('Settings', () => {
describe('Authorization roles', () => {
const testData = {
roleName: `Auto Role C624253 ${getRandomPostfix()}`,
applicationName: 'app-platform-full',
capabilitySetsColumnToSelect: {
type: CAPABILITY_TYPES.DATA,
action: CAPABILITY_ACTIONS.VIEW,
},
capabilityColumnToSelect: {
type: CAPABILITY_TYPES.DATA,
action: CAPABILITY_ACTIONS.CREATE,
},
notSelectedCapabilitySetColumn: {
type: CAPABILITY_TYPES.DATA,
action: CAPABILITY_ACTIONS.EDIT,
},
notSelectedCapabilityColumn: {
type: CAPABILITY_TYPES.SETTINGS,
action: CAPABILITY_ACTIONS.DELETE,
},
absentCapabilitySetTables: [CAPABILITY_TYPES.SETTINGS, CAPABILITY_TYPES.PROCEDURAL],
};

const capabSetsForTestUser = [
{
type: CAPABILITY_TYPES.SETTINGS,
resource: 'UI-Authorization-Roles Settings Admin',
action: CAPABILITY_ACTIONS.VIEW,
},
{
type: CAPABILITY_TYPES.DATA,
resource: 'Capabilities',
action: CAPABILITY_ACTIONS.MANAGE,
},
{
type: CAPABILITY_TYPES.DATA,
resource: 'Role-Capability-Sets',
action: CAPABILITY_ACTIONS.MANAGE,
},
];

const capabsForTestUser = [
{
type: CAPABILITY_TYPES.SETTINGS,
resource: 'Settings Enabled',
action: CAPABILITY_ACTIONS.VIEW,
},
];

before(() => {
cy.createTempUser([]).then((createdUserProperties) => {
testData.user = createdUserProperties;
cy.assignCapabilitiesToExistingUser(
testData.user.userId,
capabsForTestUser,
capabSetsForTestUser,
);
if (Cypress.env('runAsAdmin')) cy.updateRolesForUserApi(testData.user.userId, []);
cy.login(testData.user.username, testData.user.password, {
path: TopMenu.settingsAuthorizationRoles,
waiter: AuthorizationRoles.waitContentLoading,
});
});
});

afterEach(() => {
cy.getAdminToken();
Users.deleteViaApi(testData.user.userId);
cy.getUserRoleIdByNameApi(testData.roleName).then((roleId) => {
cy.deleteAuthorizationRoleApi(roleId);
});
});

it(
'C624253 Selecting all checkboxes in columns when creating new authorization role (eureka)',
{ tags: ['criticalPath', 'eureka', 'C624253'] },
() => {
AuthorizationRoles.clickNewButton();
AuthorizationRoles.verifyEmptyCapabilitiesAccordion();
AuthorizationRoles.verifyEmptyCapabilitySetsAccordion();
AuthorizationRoles.fillRoleNameDescription(testData.roleName);
AuthorizationRoles.clickSelectApplication();
AuthorizationRoles.selectApplicationInModal(testData.applicationName);
AuthorizationRoles.clickSaveInModal();
AuthorizationRoles.selectCapabilityColumn(
testData.capabilityColumnToSelect.type,
testData.capabilityColumnToSelect.action,
);
AuthorizationRoles.getCapabilityCheckboxCountInColumn(
testData.capabilityColumnToSelect.type,
testData.capabilityColumnToSelect.action,
).then((capabCount) => {
AuthorizationRoles.selectCapabilitySetColumn(
testData.capabilitySetsColumnToSelect.type,
testData.capabilitySetsColumnToSelect.action,
);
AuthorizationRoles.getCapabilitySetCheckboxCountInColumn(
testData.capabilitySetsColumnToSelect.type,
testData.capabilitySetsColumnToSelect.action,
).then((setCount) => {
AuthorizationRoles.clickSaveButton();
AuthorizationRoles.checkAfterSaveCreate(testData.roleName);
AuthorizationRoles.clickOnCapabilitySetsAccordion();
AuthorizationRoles.getCapabilitySetCheckboxCountInColumn(
testData.capabilitySetsColumnToSelect.type,
testData.capabilitySetsColumnToSelect.action,
).then((setCountInView) => {
cy.expect(setCount).to.eq(setCountInView);
});
AuthorizationRoles.verifyNoCheckboxesInCapabilitySetColumn(
testData.notSelectedCapabilitySetColumn.type,
testData.notSelectedCapabilitySetColumn.action,
);
testData.absentCapabilitySetTables.forEach((table) => {
AuthorizationRoles.verifyCapabilitySetTableAbsent(table);
});
AuthorizationRoles.clickOnCapabilitiesAccordion();
AuthorizationRoles.getCapabilityCheckboxCountInColumn(
testData.capabilityColumnToSelect.type,
testData.capabilityColumnToSelect.action,
).then((capabCountInView) => {
cy.expect(capabCount).to.eq(capabCountInView);
});
AuthorizationRoles.verifyNoCheckboxesInCapabilityColumn(
testData.notSelectedCapabilityColumn.type,
testData.notSelectedCapabilityColumn.action,
);
});
});
},
);
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -711,4 +711,62 @@ export default {
if (isShown) cy.expect(actionsButton.exists());
else cy.expect(actionsButton.absent());
},

selectCapabilityColumn: (table, action) => {
const targetCheckbox = capabilitiesAccordion
.find(capabilityTables[table])
.find(MultiColumnListHeader(including(action)))
.find(Checkbox());
cy.do(targetCheckbox.click());
cy.expect(targetCheckbox.has({ checked: true }));
},

getCapabilityCheckboxCountInColumn: (table, action) => {
return cy
.get(`div[data-testid="capabilities-${table.toLowerCase()}-type"]`)
.eq(1)
.find(`input[type="checkbox"][aria-label^="${action} "]`)
.then((checkboxes) => {
return checkboxes.length;
});
},

selectCapabilitySetColumn: (table, action) => {
const targetCheckbox = capabilitySetsAccordion
.find(capabilityTables[table])
.find(MultiColumnListHeader(including(action)))
.find(Checkbox());
cy.do(targetCheckbox.click());
cy.expect(targetCheckbox.has({ checked: true }));
},

getCapabilitySetCheckboxCountInColumn: (table, action) => {
return cy
.get(`div[data-testid="capabilities-${table.toLowerCase()}-type"]`)
.eq(0)
.find(`input[type="checkbox"][aria-label^="${action} "]`)
.then((checkboxes) => {
return checkboxes.length;
});
},

verifyNoCheckboxesInCapabilitySetColumn: (table, action) => {
const regExp = new RegExp(`^${action} `);
cy.expect(
capabilitySetsAccordion
.find(capabilityTables[table])
.find(Checkbox({ label: matching(regExp) }))
.absent(),
);
},

verifyNoCheckboxesInCapabilityColumn: (table, action) => {
const regExp = new RegExp(`^${action} `);
cy.expect(
capabilitiesAccordion
.find(capabilityTables[table])
.find(Checkbox({ label: matching(regExp) }))
.absent(),
);
},
};

0 comments on commit c2c1900

Please sign in to comment.