Skip to content

Commit

Permalink
FAT-11063 (#3247)
Browse files Browse the repository at this point in the history
  • Loading branch information
ostapwd committed Feb 27, 2024
1 parent b4c3820 commit f006d3d
Show file tree
Hide file tree
Showing 6 changed files with 217 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
import Affiliations, { tenantNames } from '../../../support/dictionary/affiliations';
import Permissions from '../../../support/dictionary/permissions';
import ConsortiaControlledVocabularyPaneset, {
actionIcons,
} from '../../../support/fragments/consortium-manager/consortiaControlledVocabularyPaneset';
import ConsortiumManagerApp, {
settingsItems,
} from '../../../support/fragments/consortium-manager/consortiumManagerApp';
import ConfirmCreate from '../../../support/fragments/consortium-manager/modal/confirm-create';
import ConfirmShare from '../../../support/fragments/consortium-manager/modal/confirm-share';
import SelectMembers from '../../../support/fragments/consortium-manager/modal/select-members';
import DepartmentsConsortiumManager from '../../../support/fragments/consortium-manager/users/departmentsConsortiumManager';
import TopMenu from '../../../support/fragments/topMenu';
import Users from '../../../support/fragments/users/users';
import { getTestEntityValue } from '../../../support/utils/stringTools';
import DeleteCancelReason from '../../../support/fragments/consortium-manager/modal/delete-cancel-reason';
import ConsortiumManager from '../../../support/fragments/settings/consortium-manager/consortium-manager';
import SettingsMenu from '../../../support/fragments/settingsMenu';

const testData = {
newDepartment: {
name: getTestEntityValue('a_new'),
code: getTestEntityValue('a_new'),
},
editDepartment: {
name: getTestEntityValue('a_edit'),
code: getTestEntityValue('a_edit'),
},
};

describe('Consortium manager', () => {
describe('Manage local settings', () => {
describe('Manage local Departments', () => {
before('Create test data', () => {
cy.getAdminToken();
cy.resetTenant();
cy.createTempUser([
Permissions.consortiaSettingsConsortiumManagerEdit.gui,
Permissions.consortiaSettingsConsortiumManagerDepartmentsAll.gui,
]).then((userProperties) => {
testData.user = userProperties;
cy.assignAffiliationToUser(Affiliations.College, testData.user.userId);
cy.setTenant(Affiliations.College);
cy.assignPermissionsToExistingUser(testData.user.userId, [
Permissions.consortiaSettingsConsortiumManagerDepartmentsAll.gui,
]);
cy.resetTenant();
cy.assignAffiliationToUser(Affiliations.University, testData.user.userId);
cy.setTenant(Affiliations.University);
cy.assignPermissionsToExistingUser(testData.user.userId, [
Permissions.consortiaSettingsConsortiumManagerDepartmentsAll.gui,
]);
});
});

after('Delete test data', () => {
cy.resetTenant();
cy.getAdminToken();
Users.deleteViaApi(testData.user.userId);
});

it(
'C407002 User with "Consortium manager: Can create, edit and remove settings" permission is able to manage local departments of selected affiliated tenants in "Consortium manager" app (consortia) (thunderjet)',
{ tags: ['criticalPathECS', 'thunderjet'] },
() => {
cy.login(testData.user.username, testData.user.password, {
path: TopMenu.consortiumManagerPath,
waiter: ConsortiumManagerApp.waitLoading,
});

ConsortiumManagerApp.chooseSettingsItem(settingsItems.users);
DepartmentsConsortiumManager.choose();
ConsortiumManagerApp.clickSelectMembers();
SelectMembers.changeSelectAllCheckbox('check');
SelectMembers.saveAndClose();
ConsortiumManagerApp.clickSelectMembers();
SelectMembers.selectMembers(tenantNames.central, tenantNames.college, tenantNames.university);
SelectMembers.saveAndClose();
SelectMembers.selectAllMembers();

ConsortiaControlledVocabularyPaneset.verifyNewButtonDisabled(false);
ConsortiaControlledVocabularyPaneset.createViaUi(false, testData.newDepartment);
ConsortiaControlledVocabularyPaneset.clickSave();

ConfirmCreate.waitLoadingConfirmCreate(testData.newDepartment.name);
ConfirmCreate.clickConfirm();

ConsortiaControlledVocabularyPaneset.verifyRecordInTheList(
[
testData.newDepartment.name,
testData.newDepartment.code,
tenantNames.central,
],
['edit', 'trash'],
);

ConsortiaControlledVocabularyPaneset.performAction(testData.newDepartment.name, actionIcons.edit);
ConsortiaControlledVocabularyPaneset.fillInTextField({ name: testData.editDepartment.name, code: testData.editDepartment.code });
ConsortiaControlledVocabularyPaneset.clickSave();

ConfirmShare.waitLoadingConfirmShareToAll(testData.editDepartment.name);
ConfirmShare.clickConfirm();

ConsortiaControlledVocabularyPaneset.verifyRecordInTheList(
[
testData.editDepartment.name,
testData.editDepartment.code,
tenantNames.central,
],
['edit', 'trash'],
);

ConsortiaControlledVocabularyPaneset.performAction(
testData.editDepartment.name,
actionIcons.trash,
);
DeleteCancelReason.waitLoadingDeleteModal('department', testData.editDepartment.name);

DeleteCancelReason.clickCancel();
ConsortiaControlledVocabularyPaneset.verifyRecordNotInTheList(
testData.editDepartment.name,
);

ConsortiaControlledVocabularyPaneset.verifyNewButtonDisabled(false);
ConsortiaControlledVocabularyPaneset.createViaUi(false, testData.newDepartment);
ConsortiaControlledVocabularyPaneset.clickSave();

ConfirmCreate.waitLoadingConfirmCreate(testData.newDepartment.name);
ConfirmCreate.clickKeepEditing();
ConsortiaControlledVocabularyPaneset.verifyEditModeIsActive();

ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
cy.visit(SettingsMenu.consortiaSettingsDepartmentsPath);
DepartmentsConsortiumManager.waitLoading();
ConsortiaControlledVocabularyPaneset.verifyRecordInTheList(
[
testData.newDepartment.name,
testData.newDepartment.code,
tenantNames.college,
],
['edit', 'trash'],
);

ConsortiumManager.switchActiveAffiliation(tenantNames.college, tenantNames.university);
cy.visit(SettingsMenu.consortiaSettingsDepartmentsPath);
DepartmentsConsortiumManager.waitLoading();
ConsortiaControlledVocabularyPaneset.verifyRecordInTheList(
[
testData.newDepartment.name,
testData.newDepartment.code,
tenantNames.university,
],
['edit', 'trash'],
);
},
);
});
});
});
1 change: 1 addition & 0 deletions cypress/support/dictionary/affiliations.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export default {
Consortia: 'cs00000int',
University: 'cs00000int_0005',
School: 'cs00000int_0003',
College: 'cs00000int_0001',
};

Expand Down
8 changes: 8 additions & 0 deletions cypress/support/dictionary/permissions.js
Original file line number Diff line number Diff line change
Expand Up @@ -999,6 +999,14 @@ export default {
internal: 'ui-consortia-settings.consortium-manager.view',
gui: 'Consortium manager: Can view existing settings',
},
consortiaSettingsConsortiumManagerDepartmentsAll: {
internal: 'ui-users.settings.departments.all',
gui: 'Settings (Users): Can create, edit, view, and delete departments',
},
consortiaSettingsConsortiumManagerDepartmentsCreateEditView: {
internal: 'ui-users.settings.departments.create.edit.view',
gui: 'Settings (Users): Can create, edit, and view department',
},
// Lists
listsAll: {
internal: 'module.lists.all',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { including } from 'bigtest';
import { Button, Modal } from '../../../../../interactors';

const confirmShareToAllModal = Modal({ id: 'create-controlled-vocab-entry-confirmation' });
const keepEditingButton = confirmShareToAllModal.find(Button('Keep editing'));
const confirmButton = confirmShareToAllModal.find(Button('Confirm'));

export default {
waitLoadingConfirmCreate(name) {
cy.expect([
confirmShareToAllModal.has({
header: 'Confirm member libraries',
content: including(`${name} will be saved for the member libraries`),
}),
keepEditingButton.is({ disabled: false }),
confirmButton.is({ disabled: false }),
]);
},

clickConfirm() {
cy.do(confirmButton.click());
cy.expect(confirmShareToAllModal.absent());
},

clickKeepEditing() {
cy.do(keepEditingButton.click());
cy.expect(confirmShareToAllModal.absent());
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,17 @@ export default {
]);
},

waitLoadingConfirmShareToMemberLibraries(name) {
cy.expect([
Modal({ id: 'create-controlled-vocab-entry-confirmation' }).has({
header: 'Confirm member libraries',
content: including(`${name} will be saved for the member libraries`),
}),
keepEditingButton.is({ disabled: false }),
confirmButton.is({ disabled: false }),
]);
},

clickConfirm() {
cy.do(confirmButton.click());
cy.expect(confirmShareToAllModal.absent());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import uuid from 'uuid';
import { MultiColumnListHeader, PaneHeader } from '../../../../../interactors';
import { REQUEST_METHOD } from '../../../constants';
import { MultiColumnListHeader } from '../../../../../interactors';
import ConsortiumManagerApp from '../consortiumManagerApp';

const id = uuid();
Expand Down Expand Up @@ -52,4 +52,12 @@ export default {
},
);
},

waitLoading() {
cy.expect(
PaneHeader({
id: 'paneHeaderconsortia-controlled-vocabulary-pane',
}).exists(),
);
},
};

0 comments on commit f006d3d

Please sign in to comment.