Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FAT-11063 #3247

Merged
merged 1 commit into from
Feb 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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(),
);
},
};
Loading