test: adapt role-conditions tests to new permission types

This commit is contained in:
Jakub P
2025-04-10 09:58:57 +02:00
parent 87d37a9481
commit 01c7e0f4a9
2 changed files with 62 additions and 152 deletions

View File

@@ -1,69 +1,55 @@
const { test, expect } = require('../../fixtures/index');
test(
'Role permissions conform with role conditions ',
async({ adminRolesPage, adminCreateRolePage }) => {
await adminRolesPage.navigateTo();
await adminRolesPage.createRoleButton.click();
/*
example config: {
action: 'read',
subject: 'connection',
row: page.getByTestId('connection-permission-row'),
locator: row.getByTestId('read-checkbox')
}
*/
const permissionConfigs =
await adminCreateRolePage.getPermissionConfigs();
test('Check Own permissions when All are checked', async ({
adminRolesPage,
adminCreateRolePage,
}) => {
await adminRolesPage.navigateTo();
await adminRolesPage.createRoleButton.click();
await adminCreateRolePage.waitForPermissionsCatalogToVisible();
await test.step(
'Iterate over each permission config and make sure role conditions conform',
async () => {
for (let config of permissionConfigs) {
await config.locator.click();
await adminCreateRolePage.clickPermissionSettings(config.row);
const modal = adminCreateRolePage.getRoleConditionsModal(
config.subject
);
await expect(modal.modal).toBeVisible();
const conditions = await modal.getAvailableConditions();
for (let conditionAction of Object.keys(conditions)) {
if (conditionAction === config.action) {
await expect(conditions[conditionAction]).not.toBeDisabled();
} else {
await expect(conditions[conditionAction]).toBeDisabled();
}
}
await modal.close();
await config.locator.click();
}
}
);
}
);
await adminCreateRolePage.connectionPermissionRow
.locator(adminCreateRolePage.readCheckbox)
.check();
await expect(
adminCreateRolePage.connectionPermissionRow.locator(
adminCreateRolePage.isCreatorReadCheckbox
)
).toBeChecked();
test(
'Default role permissions conforms with role conditions',
async({ adminRolesPage, adminCreateRolePage }) => {
await adminRolesPage.navigateTo();
await adminRolesPage.createRoleButton.click();
await adminCreateRolePage.flowPermissionRow
.locator(adminCreateRolePage.readCheckbox)
.check();
await expect(
adminCreateRolePage.flowPermissionRow.locator(
adminCreateRolePage.isCreatorReadCheckbox
)
).toBeChecked();
const subjects = ['Connection', 'Execution', 'Flow'];
for (let subject of subjects) {
const row = adminCreateRolePage.getSubjectRow(subject);
const modal = adminCreateRolePage.getRoleConditionsModal(subject);
await adminCreateRolePage.clickPermissionSettings(row);
await expect(modal.modal).toBeVisible();
const availableConditions = await modal.getAvailableConditions();
const conditions = ['create', 'read', 'update', 'delete', 'publish'];
for (let condition of conditions) {
if (availableConditions[condition]) {
await expect(availableConditions[condition]).toBeDisabled();
}
}
await modal.close();
}
await adminCreateRolePage.executionPermissionRow
.locator(adminCreateRolePage.readCheckbox)
.check();
await expect(
adminCreateRolePage.executionPermissionRow.locator(
adminCreateRolePage.isCreatorReadCheckbox
)
).toBeChecked();
}
);
await adminCreateRolePage.connectionPermissionRow
.locator(adminCreateRolePage.manageCheckbox)
.check();
await expect(
adminCreateRolePage.connectionPermissionRow.locator(
adminCreateRolePage.isCreatorManageCheckbox
)
).toBeChecked();
await adminCreateRolePage.flowPermissionRow
.locator(adminCreateRolePage.manageCheckbox)
.check();
await expect(
adminCreateRolePage.flowPermissionRow.locator(
adminCreateRolePage.isCreatorManageCheckbox
)
).toBeChecked();
});