Skip to content

Commit

Permalink
FAT-10281-C402763 (#3110)
Browse files Browse the repository at this point in the history
* added test

* fixed test
  • Loading branch information
TetianaParanich committed Jan 23, 2024
1 parent 46cfe8e commit c947a11
Show file tree
Hide file tree
Showing 9 changed files with 138 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,14 @@ import {
FOLIO_RECORD_TYPE,
JOB_STATUS_NAMES,
} from '../../../../support/constants';
import {
JobProfiles as SettingsJobProfiles,
MatchProfiles as SettingsMatchProfiles,
ActionProfiles as SettingsActionProfiles,
FieldMappingProfiles as SettingsFieldMappingProfiles,
} from '../../../../support/fragments/settings/dataImport';
import Affiliations, { tenantNames } from '../../../../support/dictionary/affiliations';
import Permissions from '../../../../support/dictionary/permissions';
import ActionProfiles from '../../../../support/fragments/data_import/action_profiles/actionProfiles';
import NewJobProfile from '../../../../support/fragments/data_import/job_profiles/newJobProfile';
import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance';
import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances';
Expand All @@ -21,12 +26,10 @@ import JobProfiles from '../../../../support/fragments/data_import/job_profiles/
import Logs from '../../../../support/fragments/data_import/logs/logs';
import NewFieldMappingProfile from '../../../../support/fragments/data_import/mapping_profiles/newFieldMappingProfile';
import FileManager from '../../../../support/utils/fileManager';
import FieldMappingProfileView from '../../../../support/fragments/data_import/mapping_profiles/fieldMappingProfileView';
import InventoryViewSource from '../../../../support/fragments/inventory/inventoryViewSource';
import BrowseContributors from '../../../../support/fragments/inventory/search/browseContributors';
import BrowseSubjects from '../../../../support/fragments/inventory/search/browseSubjects';
import QuickMarcEditor from '../../../../support/fragments/quickMarcEditor';
import MatchProfiles from '../../../../support/fragments/settings/dataImport/matchProfiles/matchProfiles';
import NewMatchProfile from '../../../../support/fragments/settings/dataImport/matchProfiles/newMatchProfile';

describe('Data Import', () => {
Expand Down Expand Up @@ -162,10 +165,10 @@ describe('Data Import', () => {
cy.getAdminToken();
Users.deleteViaApi(testData.user.userId);
InventoryInstance.deleteInstanceViaApi(testData.sharedInstanceId[0]);
JobProfiles.deleteJobProfile(jobProfileName);
MatchProfiles.deleteMatchProfile(matchProfile.profileName);
ActionProfiles.deleteActionProfile(actionProfile.name);
FieldMappingProfileView.deleteViaApi(mappingProfile.name);
SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileName);
SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName);
SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name);
SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name);
// delete created files in fixtures
FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.exportedFileName}`);
FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.modifiedMarcFile}`);
Expand Down Expand Up @@ -207,7 +210,7 @@ describe('Data Import', () => {

cy.visit(TopMenu.inventoryPath);
InventorySearchAndFilter.verifyPanesExist();
InventoryInstance.searchByTitle(testData.sharedInstanceId[0]);
InventoryInstances.searchByTitle(testData.sharedInstanceId[0]);
InventoryInstance.waitInstanceRecordViewOpened(testData.instanceTitle);
InventoryInstance.checkContributor(testData.contributorName);
InventoryInstance.verifyContributorAbsent(testData.absentContributorName);
Expand All @@ -226,9 +229,9 @@ describe('Data Import', () => {
BrowseSubjects.searchBrowseSubjects(testData.subjects[1].name);
BrowseSubjects.checkSearchResultRecord(testData.subjects[1].name);

ConsortiumManager.switchActiveAffiliation(tenantNames.college);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
cy.visit(TopMenu.inventoryPath);
InventoryInstance.searchByTitle(testData.sharedInstanceId[0]);
InventoryInstances.searchByTitle(testData.sharedInstanceId[0]);
InventoryInstance.waitInstanceRecordViewOpened(testData.instanceTitle);
InventoryInstance.checkContributor(testData.contributorName);
InventoryInstance.verifyContributorAbsent(testData.absentContributorName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ describe('Data Import', () => {
path: TopMenu.inventoryPath,
waiter: InventoryInstances.waitContentLoading,
});
ConsortiumManager.switchActiveAffiliation(tenantNames.college);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
});
});

Expand Down Expand Up @@ -227,7 +227,7 @@ describe('Data Import', () => {
JobProfiles.waitFileIsImported(testData.marcFile.modifiedMarcFile);
Logs.checkStatusOfJobProfile(JOB_STATUS_NAMES.COMPLETED);

ConsortiumManager.switchActiveAffiliation(tenantNames.central);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.central);
cy.visit(TopMenu.inventoryPath);
InventorySearchAndFilter.verifyPanesExist();
InventoryInstances.searchByTitle(testData.sharedInstanceId[0]);
Expand All @@ -250,7 +250,7 @@ describe('Data Import', () => {
BrowseSubjects.searchBrowseSubjects(testData.subjects[0].name);
BrowseSubjects.checkSearchResultRecord(testData.subjects[0].name);

ConsortiumManager.switchActiveAffiliation(tenantNames.university);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.university);
cy.visit(TopMenu.inventoryPath);
InventorySearchAndFilter.verifyPanesExist();
InventoryInstances.searchByTitle(testData.instanceTitle);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ describe('Data Import', () => {
});
InventorySearchAndFilter.verifyPanesExist();
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
ConsortiumManager.switchActiveAffiliation(tenantNames.college);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
InventoryInstances.searchByTitle(testData.updatedInstanceTitle);
InventoryInstance.waitInstanceRecordViewOpened(testData.updatedInstanceTitle);
InventoryInstance.verifyLastUpdatedSource(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ describe('Data Import', () => {
() => {
cy.login(users.userAProperties.username, users.userAProperties.password);
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
ConsortiumManager.switchActiveAffiliation(tenantNames.college);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
cy.visit(TopMenu.inventoryPath);
InventoryInstances.searchByTitle(testData.instanceTitle);
InventorySearchAndFilter.closeInstanceDetailPane();
Expand Down Expand Up @@ -247,7 +247,7 @@ describe('Data Import', () => {
waiter: InventoryInstances.waitContentLoading,
});
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
ConsortiumManager.switchActiveAffiliation(tenantNames.university);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.university);
InventorySearchAndFilter.verifyPanesExist();
InventoryInstances.searchByTitle(testData.updatedInstanceTitle);
InventoryInstance.waitInstanceRecordViewOpened(testData.updatedInstanceTitle);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ describe('Inventory', () => {
waiter: InventoryInstances.waitContentLoading,
});
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
ConsortiumManager.switchActiveAffiliation(tenantNames.college);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
});

after('Delete test data', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ describe('Inventory', () => {
})
.then(() => {
cy.loginAsAdmin();
ConsortiumManager.switchActiveAffiliation(tenantNames.college);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
cy.visit(TopMenu.inventoryPath);
InventoryInstances.searchByTitle(testData.instance.instanceId);
InventorySearchAndFilter.closeInstanceDetailPane();
Expand Down Expand Up @@ -124,7 +124,7 @@ describe('Inventory', () => {

cy.login(testData.user.username, testData.user.password);
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
ConsortiumManager.switchActiveAffiliation(tenantNames.college);
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
});
});

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import Permissions from '../../../../support/dictionary/permissions';
import getRandomPostfix from '../../../../support/utils/stringTools';
import Users from '../../../../support/fragments/users/users';
import TopMenu from '../../../../support/fragments/topMenu';
import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances';
import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance';
import InventorySearchAndFilter from '../../../../support/fragments/inventory/inventorySearchAndFilter';
import InstanceRecordView from '../../../../support/fragments/inventory/instanceRecordView';
import { tenantNames } from '../../../../support/dictionary/affiliations';
import ConsortiumManager from '../../../../support/fragments/settings/consortium-manager/consortium-manager';
import DataImport from '../../../../support/fragments/data_import/dataImport';
import Logs from '../../../../support/fragments/data_import/logs/logs';
import { JOB_STATUS_NAMES } from '../../../../support/constants';

describe('Inventory', () => {
describe('Instance', () => {
let user;
const C402762testData = {
filePath: 'oneMarcBib.mrc',
marcFileName: `C402762 autotestFileName${getRandomPostfix()}`,
instanceIds: [],
instanceSource: 'MARC',
};
const C402763testData = {
instanceSource: 'FOLIO',
};

before('Create test data', () => {
cy.getAdminToken();
cy.createTempUser([Permissions.uiInventoryViewCreateEditInstances.gui])
.then((userProperties) => {
user = userProperties;
})
.then(() => {
cy.loginAsAdmin({
path: TopMenu.dataImportPath,
waiter: DataImport.waitLoading,
});
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
DataImport.uploadFileViaApi(C402762testData.filePath, C402762testData.marcFileName);
Logs.checkStatusOfJobProfile(JOB_STATUS_NAMES.COMPLETED);
Logs.openFileDetails(C402762testData.marcFileName);
Logs.getCreatedItemsID().then((link) => {
C402762testData.instanceIds.push(link.split('/')[5]);
});
InventoryInstance.createInstanceViaApi().then(({ instanceData }) => {
C402763testData.instance = instanceData;
});
cy.resetTenant();
});
});

beforeEach('Login', () => {
cy.login(user.username, user.password, {
path: TopMenu.inventoryPath,
waiter: InventoryInstances.waitContentLoading,
});
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
});

after('Delete test data', () => {
cy.resetTenant();
cy.getAdminToken();
Users.deleteViaApi(user.userId);
InventoryInstance.deleteInstanceViaApi(C402762testData.instanceIds[0]);
InventoryInstance.deleteInstanceViaApi(C402763testData.instance.instanceId);
});

it(
'C402762 (CONSORTIA) Verify the Source of a MARC Instance on Central tenant (consortia) (folijet)',
{ tags: ['criticalPathECS', 'folijet'] },
() => {
InventorySearchAndFilter.verifySearchAndFilterPane();
InventorySearchAndFilter.bySource(C402762testData.instanceSource);
InventorySearchAndFilter.searchInstanceByTitle(C402762testData.instanceIds[0]);
InventorySearchAndFilter.verifyInstanceDetailsView();
InstanceRecordView.verifyInstanceSource(C402762testData.instanceSource);
InstanceRecordView.verifyEditInstanceButtonIsEnabled();
},
);

it(
'C402763 (CONSORTIA) Verify the Source of a FOLIO Instance on Central tenant (consortia) (folijet)',
{ tags: ['criticalPathECS', 'folijet'] },
() => {
InventorySearchAndFilter.verifySearchAndFilterPane();
InventorySearchAndFilter.bySource(C402763testData.instanceSource);
InventorySearchAndFilter.searchInstanceByTitle(C402763testData.instance.instanceId);
InventorySearchAndFilter.verifyInstanceDetailsView();
InstanceRecordView.verifyInstanceSource(C402763testData.instanceSource);
InstanceRecordView.verifyEditInstanceButtonIsEnabled();
},
);
});
});
5 changes: 5 additions & 0 deletions cypress/support/fragments/inventory/instanceRecordView.js
Original file line number Diff line number Diff line change
Expand Up @@ -523,4 +523,9 @@ export default {
cy.do(rootSection.find(actionsButton).click());
cy.expect(Button({ id: 'edit-instance' }).absent());
},

verifyEditInstanceButtonIsEnabled() {
cy.do(rootSection.find(actionsButton).click());
cy.expect(Button({ id: 'edit-instance' }).has({ disabled: false }));
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
TextField,
including,
HTML,
Dropdown,
} from '../../../../../interactors';

const myProfileButton = Button({ ariaLabel: 'My profile' });
Expand Down Expand Up @@ -72,19 +73,25 @@ export default {
]);
},

switchActiveAffiliation(tenantName) {
switchActiveAffiliation(currentTenantName, newTenantName) {
cy.wait(8000);
cy.do([
myProfileButton.click(),
Dropdown({ id: 'profileDropdown' })
.find(Button({ ariaLabel: `${currentTenantName} profile` }))
.click(),
switchActiveAffiliationButton.click(),
Modal('Select affiliation')
.find(Button({ id: 'consortium-affiliations-select' }))
.click(),
SelectionOption(including(tenantName)).click(),
SelectionOption(including(newTenantName)).click(),
Button({ id: 'save-active-affiliation' }).click(),
]);
cy.wait(8000);
cy.expect(myProfileButton.find(HTML({ text: including(tenantName) })).exists());
cy.expect(
Button({ ariaLabel: `${newTenantName} profile` })
.find(HTML({ text: including(newTenantName) }))
.exists(),
);
},

switchActiveAffiliationIsAbsent() {
Expand All @@ -102,6 +109,10 @@ export default {
},

checkCurrentTenantInTopMenu(tenantName) {
cy.expect(myProfileButton.find(HTML({ text: including(tenantName) })).exists());
cy.expect(
Dropdown({ id: 'profileDropdown' })
.find(Button({ ariaLabel: `${tenantName} profile` }))
.exists(),
);
},
};

0 comments on commit c947a11

Please sign in to comment.