diff --git a/cypress/e2e/consortia/data-import/importing-marcAuthority-files/updated-imported-marcAuth-record-from-central-updated-in-member.cy.js b/cypress/e2e/consortia/data-import/importing-marcAuthority-files/updated-imported-marcAuth-record-from-central-updated-in-member.cy.js index 0dd9601cd9..b876f9d451 100644 --- a/cypress/e2e/consortia/data-import/importing-marcAuthority-files/updated-imported-marcAuth-record-from-central-updated-in-member.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcAuthority-files/updated-imported-marcAuth-record-from-central-updated-in-member.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, RECORD_STATUSES, DEFAULT_JOB_PROFILE_NAMES, @@ -75,7 +75,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -124,7 +124,7 @@ describe('Data Import', () => { cy.loginAsAdmin(); // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcAuthViaApi(mappingProfile); diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shadow-marcBib-in-member-via-DI.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shadow-marcBib-in-member-via-DI.cy.js index 9417f5cb0e..5b7464099c 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shadow-marcBib-in-member-via-DI.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shadow-marcBib-in-member-via-DI.cy.js @@ -1,6 +1,6 @@ import { DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, } from '../../../../support/constants'; @@ -75,7 +75,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C411794 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -94,7 +93,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C411794 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; @@ -126,7 +125,7 @@ describe('Data Import', () => { ]); NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shared-marcBib-in-central-via-DI-and-confirm-in-member.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shared-marcBib-in-central-via-DI-and-confirm-in-member.cy.js index 7794d063d6..e8dd450e4b 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shared-marcBib-in-central-via-DI-and-confirm-in-member.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shared-marcBib-in-central-via-DI-and-confirm-in-member.cy.js @@ -1,6 +1,6 @@ import { + EXISTING_RECORD_NAMES, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, } from '../../../../support/constants'; @@ -74,7 +74,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C405531 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -93,7 +92,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C405531 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; @@ -101,7 +100,7 @@ describe('Data Import', () => { cy.getAdminToken(); NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { @@ -153,6 +152,9 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files in fixtures + FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.exportedFileName}`); + FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.modifiedMarcFile}`); cy.resetTenant(); cy.getAdminToken(); Users.deleteViaApi(testData.user.userId); @@ -161,9 +163,6 @@ describe('Data Import', () => { 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}`); }); it( diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shared-marcBib-in-member.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shared-marcBib-in-member.cy.js index 3672c4ff1d..1caffc602c 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shared-marcBib-in-member.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/adding-deleting-fields-and-subfields-when-updating-shared-marcBib-in-member.cy.js @@ -1,6 +1,6 @@ import { DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, } from '../../../../support/constants'; @@ -73,7 +73,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C405532 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -92,7 +91,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C405532 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; @@ -140,7 +139,7 @@ describe('Data Import', () => { cy.setTenant(Affiliations.College); NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-$0-in-linked-fileds-of-shared-marcBib-in-central.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-$0-in-linked-fileds-of-shared-marcBib-in-central.cy.js index 4a24f31ce8..84e88663da 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-$0-in-linked-fileds-of-shared-marcBib-in-central.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-$0-in-linked-fileds-of-shared-marcBib-in-central.cy.js @@ -1,39 +1,39 @@ import { - EXISTING_RECORDS_NAMES, - FOLIO_RECORD_TYPE, DEFAULT_JOB_PROFILE_NAMES, + EXISTING_RECORD_NAMES, + FOLIO_RECORD_TYPE, } from '../../../../support/constants'; import Affiliations, { tenantNames } from '../../../../support/dictionary/affiliations'; import Permissions from '../../../../support/dictionary/permissions'; -import NewJobProfile from '../../../../support/fragments/data_import/job_profiles/newJobProfile'; -import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances'; -import InventorySearchAndFilter from '../../../../support/fragments/inventory/inventorySearchAndFilter'; -import ConsortiumManager from '../../../../support/fragments/settings/consortium-manager/consortium-manager'; -import TopMenu from '../../../../support/fragments/topMenu'; -import Users from '../../../../support/fragments/users/users'; -import getRandomPostfix from '../../../../support/utils/stringTools'; import ExportFile from '../../../../support/fragments/data-export/exportFile'; import NewActionProfile from '../../../../support/fragments/data_import/action_profiles/newActionProfile'; import DataImport from '../../../../support/fragments/data_import/dataImport'; import JobProfiles from '../../../../support/fragments/data_import/job_profiles/jobProfiles'; +import NewJobProfile from '../../../../support/fragments/data_import/job_profiles/newJobProfile'; 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 InventoryHoldings from '../../../../support/fragments/inventory/holdings/inventoryHoldings'; +import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance'; +import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances'; +import InventorySearchAndFilter from '../../../../support/fragments/inventory/inventorySearchAndFilter'; +import InventoryViewSource from '../../../../support/fragments/inventory/inventoryViewSource'; +import MarcAuthorities from '../../../../support/fragments/marcAuthority/marcAuthorities'; +import MarcAuthority from '../../../../support/fragments/marcAuthority/marcAuthority'; +import QuickMarcEditor from '../../../../support/fragments/quickMarcEditor'; +import ConsortiumManager from '../../../../support/fragments/settings/consortium-manager/consortium-manager'; import { - JobProfiles as SettingsJobProfiles, - MatchProfiles as SettingsMatchProfiles, ActionProfiles as SettingsActionProfiles, FieldMappingProfiles as SettingsFieldMappingProfiles, + JobProfiles as SettingsJobProfiles, + MatchProfiles as SettingsMatchProfiles, } from '../../../../support/fragments/settings/dataImport'; -import InventoryViewSource from '../../../../support/fragments/inventory/inventoryViewSource'; import NewMatchProfile from '../../../../support/fragments/settings/dataImport/matchProfiles/newMatchProfile'; -import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance'; -import MarcAuthority from '../../../../support/fragments/marcAuthority/marcAuthority'; -import MarcAuthorities from '../../../../support/fragments/marcAuthority/marcAuthorities'; -import QuickMarcEditor from '../../../../support/fragments/quickMarcEditor'; -import InventoryHoldings from '../../../../support/fragments/inventory/holdings/inventoryHoldings'; -import ServicePoints from '../../../../support/fragments/settings/tenant/servicePoints/servicePoints'; import Locations from '../../../../support/fragments/settings/tenant/location-setup/locations'; +import ServicePoints from '../../../../support/fragments/settings/tenant/servicePoints/servicePoints'; +import TopMenu from '../../../../support/fragments/topMenu'; +import Users from '../../../../support/fragments/users/users'; +import FileManager from '../../../../support/utils/fileManager'; +import getRandomPostfix from '../../../../support/utils/stringTools'; describe('Data Import', () => { describe('Importing MARC Bib files', () => { @@ -112,7 +112,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C411802 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -131,7 +130,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C411802 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; const createdAuthorityIDs = []; @@ -213,7 +212,7 @@ describe('Data Import', () => { .then(() => { NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-$0-in-linked-fileds-of-shared-marcBib-in-member.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-$0-in-linked-fileds-of-shared-marcBib-in-member.cy.js index 7e5e2820a3..e17b1d1cb6 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-$0-in-linked-fileds-of-shared-marcBib-in-member.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-$0-in-linked-fileds-of-shared-marcBib-in-member.cy.js @@ -1,36 +1,36 @@ import { - EXISTING_RECORDS_NAMES, - FOLIO_RECORD_TYPE, DEFAULT_JOB_PROFILE_NAMES, + EXISTING_RECORD_NAMES, + FOLIO_RECORD_TYPE, } from '../../../../support/constants'; import Affiliations, { tenantNames } from '../../../../support/dictionary/affiliations'; import Permissions from '../../../../support/dictionary/permissions'; -import NewJobProfile from '../../../../support/fragments/data_import/job_profiles/newJobProfile'; -import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances'; -import InventorySearchAndFilter from '../../../../support/fragments/inventory/inventorySearchAndFilter'; -import ConsortiumManager from '../../../../support/fragments/settings/consortium-manager/consortium-manager'; -import TopMenu from '../../../../support/fragments/topMenu'; -import Users from '../../../../support/fragments/users/users'; -import getRandomPostfix from '../../../../support/utils/stringTools'; import ExportFile from '../../../../support/fragments/data-export/exportFile'; import NewActionProfile from '../../../../support/fragments/data_import/action_profiles/newActionProfile'; import DataImport from '../../../../support/fragments/data_import/dataImport'; import JobProfiles from '../../../../support/fragments/data_import/job_profiles/jobProfiles'; +import NewJobProfile from '../../../../support/fragments/data_import/job_profiles/newJobProfile'; 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 InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance'; +import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances'; +import InventorySearchAndFilter from '../../../../support/fragments/inventory/inventorySearchAndFilter'; +import InventoryViewSource from '../../../../support/fragments/inventory/inventoryViewSource'; +import MarcAuthorities from '../../../../support/fragments/marcAuthority/marcAuthorities'; +import MarcAuthority from '../../../../support/fragments/marcAuthority/marcAuthority'; +import QuickMarcEditor from '../../../../support/fragments/quickMarcEditor'; +import ConsortiumManager from '../../../../support/fragments/settings/consortium-manager/consortium-manager'; import { - JobProfiles as SettingsJobProfiles, - MatchProfiles as SettingsMatchProfiles, ActionProfiles as SettingsActionProfiles, FieldMappingProfiles as SettingsFieldMappingProfiles, + JobProfiles as SettingsJobProfiles, + MatchProfiles as SettingsMatchProfiles, } from '../../../../support/fragments/settings/dataImport'; -import InventoryViewSource from '../../../../support/fragments/inventory/inventoryViewSource'; import NewMatchProfile from '../../../../support/fragments/settings/dataImport/matchProfiles/newMatchProfile'; -import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance'; -import MarcAuthority from '../../../../support/fragments/marcAuthority/marcAuthority'; -import MarcAuthorities from '../../../../support/fragments/marcAuthority/marcAuthorities'; -import QuickMarcEditor from '../../../../support/fragments/quickMarcEditor'; +import TopMenu from '../../../../support/fragments/topMenu'; +import Users from '../../../../support/fragments/users/users'; +import FileManager from '../../../../support/utils/fileManager'; +import getRandomPostfix from '../../../../support/utils/stringTools'; describe('Data Import', () => { describe('Importing MARC Bib files', () => { @@ -112,7 +112,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C407696 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -131,7 +130,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C407696 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; const createdAuthorityIDs = []; @@ -216,7 +215,7 @@ describe('Data Import', () => { cy.setTenant(Affiliations.College); NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-marcBib-in-central-via-import-and-check-updated-in-member.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-marcBib-in-central-via-import-and-check-updated-in-member.cy.js index 784985a81c..9da4aa98fd 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-marcBib-in-central-via-import-and-check-updated-in-member.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-marcBib-in-central-via-import-and-check-updated-in-member.cy.js @@ -1,6 +1,6 @@ import { DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, } from '../../../../support/constants'; @@ -61,7 +61,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C411795 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -80,7 +79,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C411795 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; @@ -88,7 +87,7 @@ describe('Data Import', () => { cy.getAdminToken(); NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { @@ -157,6 +156,9 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files in fixtures + FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.exportedFileName}`); + FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.modifiedMarcFile}`); // delete created files in fixtures FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.exportedFileName}`); FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.modifiedMarcFile}`); diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-shared-marcBib-in-central-via-DI-and-changes-flow-to-member.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-shared-marcBib-in-central-via-DI-and-changes-flow-to-member.cy.js index da0139f7d9..cc6e3084f6 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-shared-marcBib-in-central-via-DI-and-changes-flow-to-member.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-shared-marcBib-in-central-via-DI-and-changes-flow-to-member.cy.js @@ -1,6 +1,6 @@ import { DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -59,7 +59,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C405534 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -78,7 +77,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C405534 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; @@ -86,7 +85,7 @@ describe('Data Import', () => { cy.getAdminToken(); NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-shared-marcBib-in-member-via-DI-and-confirm-in-central-and-member.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-shared-marcBib-in-member-via-DI-and-confirm-in-central-and-member.cy.js index fd4e80be99..5d45d6ce94 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/update-shared-marcBib-in-member-via-DI-and-confirm-in-central-and-member.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/update-shared-marcBib-in-member-via-DI-and-confirm-in-central-and-member.cy.js @@ -1,6 +1,6 @@ import { DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -61,7 +61,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C405528 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -80,7 +79,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C405528 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; @@ -110,7 +109,7 @@ describe('Data Import', () => { ]); NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { diff --git a/cypress/e2e/consortia/data-import/importing-marcBib-files/user-without-import-permissions-in-central-cannot-update-shared-marcBib-in-member-via-DI.cy.js b/cypress/e2e/consortia/data-import/importing-marcBib-files/user-without-import-permissions-in-central-cannot-update-shared-marcBib-in-member-via-DI.cy.js index f37fa4fb34..798120389d 100644 --- a/cypress/e2e/consortia/data-import/importing-marcBib-files/user-without-import-permissions-in-central-cannot-update-shared-marcBib-in-member-via-DI.cy.js +++ b/cypress/e2e/consortia/data-import/importing-marcBib-files/user-without-import-permissions-in-central-cannot-update-shared-marcBib-in-member-via-DI.cy.js @@ -1,6 +1,6 @@ import { DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, } from '../../../../support/constants'; @@ -52,7 +52,6 @@ describe('Data Import', () => { typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, }; const actionProfile = { - typeValue: FOLIO_RECORD_TYPE.MARCBIBLIOGRAPHIC, name: `C411791 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`, action: 'UPDATE', folioRecordType: 'MARC_BIBLIOGRAPHIC', @@ -71,7 +70,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileName = `C411791 Update MARC Bib records by matching 999 ff $s subfield value${getRandomPostfix()}`; @@ -103,7 +102,7 @@ describe('Data Import', () => { ]); NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { @@ -149,6 +148,9 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files in fixtures + FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.exportedFileName}`); + FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.modifiedMarcFile}`); cy.resetTenant(); cy.getAdminToken(); Users.deleteViaApi(testData.user.userId); @@ -173,9 +175,6 @@ describe('Data Import', () => { testData.collegeLocation.libraryId, testData.collegeLocation.id, ); - // delete created files in fixtures - FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.exportedFileName}`); - FileManager.deleteFile(`cypress/fixtures/${testData.marcFile.modifiedMarcFile}`); }); it( diff --git a/cypress/e2e/consortia/data-import/settings/match-profile-options-on-central.cy.js b/cypress/e2e/consortia/data-import/settings/match-profile-options-on-central.cy.js index f75f18739a..c56941110b 100644 --- a/cypress/e2e/consortia/data-import/settings/match-profile-options-on-central.cy.js +++ b/cypress/e2e/consortia/data-import/settings/match-profile-options-on-central.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../../support/constants'; import { tenantNames } from '../../../../support/dictionary/affiliations'; import Permissions from '../../../../support/dictionary/permissions'; import ConsortiumManager from '../../../../support/fragments/settings/consortium-manager/consortium-manager'; @@ -25,13 +25,13 @@ describe('Inventory', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const detailsOptions = ['INSTANCE', 'MARC_BIBLIOGRAPHIC', 'MARC_AUTHORITY']; before('Create test data', () => { cy.getAdminToken(); - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-local-folio-source-instance-from-instance-search-results-pane-on-member.cy.js b/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-local-folio-source-instance-from-instance-search-results-pane-on-member.cy.js index b336c76769..72e88b204e 100644 --- a/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-local-folio-source-instance-from-instance-search-results-pane-on-member.cy.js +++ b/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-local-folio-source-instance-from-instance-search-results-pane-on-member.cy.js @@ -41,13 +41,13 @@ describe('Inventory', () => { }); after('Delete test data', () => { + FileManager.deleteFileFromDownloadsByMask(testData.fileName); + FileManager.deleteFile(`cypress/fixtures/${testData.fileName}`); cy.resetTenant(); cy.getAdminToken(); Users.deleteViaApi(testData.user.userId); cy.setTenant(Affiliations.College); InventoryInstance.deleteInstanceViaApi(testData.instance.instanceId); - FileManager.deleteFileFromDownloadsByMask(testData.fileName); - FileManager.deleteFile(`cypress/fixtures/${testData.fileName}`); }); it( diff --git a/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-local-marc-source-instance-from-instance-search-results-pane-on-member.cy.js b/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-local-marc-source-instance-from-instance-search-results-pane-on-member.cy.js index 5eb8e314bd..2564a0a1ad 100644 --- a/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-local-marc-source-instance-from-instance-search-results-pane-on-member.cy.js +++ b/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-local-marc-source-instance-from-instance-search-results-pane-on-member.cy.js @@ -42,13 +42,13 @@ describe('Inventory', () => { }); after('Delete test data', () => { + FileManager.deleteFileFromDownloadsByMask(testData.fileName); + FileManager.deleteFile(`cypress/fixtures/${testData.fileName}`); cy.resetTenant(); cy.getAdminToken(); Users.deleteViaApi(testData.user.userId); cy.setTenant(Affiliations.College); InventoryInstance.deleteInstanceViaApi(testData.instance.instanceId); - FileManager.deleteFileFromDownloadsByMask(testData.fileName); - FileManager.deleteFile(`cypress/fixtures/${testData.fileName}`); }); it( diff --git a/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-shared-folio-source-instance-from-instance-search-results-pane-on-member.cy.js b/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-shared-folio-source-instance-from-instance-search-results-pane-on-member.cy.js index 3c76def5c0..be4f4ff339 100644 --- a/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-shared-folio-source-instance-from-instance-search-results-pane-on-member.cy.js +++ b/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-shared-folio-source-instance-from-instance-search-results-pane-on-member.cy.js @@ -43,12 +43,12 @@ describe('Inventory', () => { }); after('Delete test data', () => { + FileManager.deleteFileFromDownloadsByMask(testData.fileName); + FileManager.deleteFile(`cypress/fixtures/${testData.fileName}`); cy.resetTenant(); cy.getAdminToken(); Users.deleteViaApi(testData.user.userId); InventoryInstance.deleteInstanceViaApi(testData.instance.instanceId); - FileManager.deleteFileFromDownloadsByMask(testData.fileName); - FileManager.deleteFile(`cypress/fixtures/${testData.fileName}`); }); it( diff --git a/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-shared-marc-source-instance-from-instance-details-pane-on-member.cy.js b/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-shared-marc-source-instance-from-instance-details-pane-on-member.cy.js index ac202d3d6f..e6f192a05a 100644 --- a/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-shared-marc-source-instance-from-instance-details-pane-on-member.cy.js +++ b/cypress/e2e/consortia/inventory/instance/link-in-data-export-app-after-exporting-shared-marc-source-instance-from-instance-details-pane-on-member.cy.js @@ -54,12 +54,12 @@ describe('Inventory', () => { }); after('Delete test data', () => { + FileManager.deleteFileFromDownloadsByMask(testData.fileName); + FileManager.deleteFile(`cypress/fixtures/${testData.fileName}`); cy.resetTenant(); cy.getAdminToken(); Users.deleteViaApi(testData.user.userId); InventoryInstance.deleteInstanceViaApi(testData.instance.instanceId); - FileManager.deleteFileFromDownloadsByMask(testData.fileName); - FileManager.deleteFile(`cypress/fixtures/${testData.fileName}`); }); it( diff --git a/cypress/e2e/consortia/inventory/instance/shared-instance-is-updated-using-DI-from-member.cy.js b/cypress/e2e/consortia/inventory/instance/shared-instance-is-updated-using-DI-from-member.cy.js index c6b91e9efc..11d5b761f4 100644 --- a/cypress/e2e/consortia/inventory/instance/shared-instance-is-updated-using-DI-from-member.cy.js +++ b/cypress/e2e/consortia/inventory/instance/shared-instance-is-updated-using-DI-from-member.cy.js @@ -1,6 +1,6 @@ import { ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_SOURCE_NAMES, JOB_STATUS_NAMES, @@ -64,7 +64,7 @@ describe('Inventory', () => { subfield: 'i', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.instanceUuid, }; const jobProfile = { diff --git a/cypress/e2e/data-import/di-tft/marc-file-import-with-matching-for-999-ff-field.cy.js b/cypress/e2e/data-import/di-tft/marc-file-import-with-matching-for-999-ff-field.cy.js index 63b3565363..c9a3d90f5b 100644 --- a/cypress/e2e/data-import/di-tft/marc-file-import-with-matching-for-999-ff-field.cy.js +++ b/cypress/e2e/data-import/di-tft/marc-file-import-with-matching-for-999-ff-field.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, RECORD_STATUSES, @@ -71,7 +71,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const mappingProfileForUpdate = { diff --git a/cypress/e2e/data-import/e2e/field-protection-overrides.cy.js b/cypress/e2e/data-import/e2e/field-protection-overrides.cy.js index 5f92e3d42a..cbfda5421c 100644 --- a/cypress/e2e/data-import/e2e/field-protection-overrides.cy.js +++ b/cypress/e2e/data-import/e2e/field-protection-overrides.cy.js @@ -3,7 +3,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -128,7 +128,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileForUpdate = { @@ -184,6 +184,9 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files + FileManager.deleteFile(`cypress/fixtures/${editedFileNameRev1}`); + FileManager.deleteFile(`cypress/fixtures/${editedFileNameRev2}`); cy.getAdminToken().then(() => { MarcFieldProtection.deleteViaApi(firstFieldId); MarcFieldProtection.deleteViaApi(secondFieldId); @@ -203,9 +206,6 @@ describe('Data Import', () => { SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( instanceMappingProfileOverride.name, ); - // delete created files - FileManager.deleteFile(`cypress/fixtures/${editedFileNameRev1}`); - FileManager.deleteFile(`cypress/fixtures/${editedFileNameRev2}`); cy.getInstance({ limit: 1, expandAll: true, query: `"hrid"=="${instanceHrid}"` }).then( (instance) => { InventoryInstance.deleteInstanceViaApi(instance.id); diff --git a/cypress/e2e/data-import/e2e/field-protection-settings.cy.js b/cypress/e2e/data-import/e2e/field-protection-settings.cy.js index 8dcca03ed2..c1250b4c7b 100644 --- a/cypress/e2e/data-import/e2e/field-protection-settings.cy.js +++ b/cypress/e2e/data-import/e2e/field-protection-settings.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -87,7 +87,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; @@ -116,6 +116,9 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files + FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); + FileManager.deleteFile(`cypress/fixtures/${fileNameForUpdate}`); cy.getAdminToken().then(() => { marcFieldProtectionId.forEach((field) => MarcFieldProtection.deleteViaApi(field)); // delete profiles @@ -132,9 +135,6 @@ describe('Data Import', () => { }, ); }); - // delete created files - FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); - FileManager.deleteFile(`cypress/fixtures/${fileNameForUpdate}`); }); const createInstanceMappingProfileForCreate = (instanceMappingProfile) => { diff --git a/cypress/e2e/data-import/e2e/match-on-holdings-856-u.cy.js b/cypress/e2e/data-import/e2e/match-on-holdings-856-u.cy.js index 8c90315e61..db677bb7e4 100644 --- a/cypress/e2e/data-import/e2e/match-on-holdings-856-u.cy.js +++ b/cypress/e2e/data-import/e2e/match-on-holdings-856-u.cy.js @@ -2,7 +2,7 @@ import { ACTION_NAMES_IN_ACTION_PROFILE, CALL_NUMBER_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, LOCATION_NAMES, @@ -83,7 +83,7 @@ describe('Data Import', () => { subfield: 'u', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.uri, }; diff --git a/cypress/e2e/data-import/e2e/match-on-instance-identifier-scen1.cy.js b/cypress/e2e/data-import/e2e/match-on-instance-identifier-scen1.cy.js index c79bbbfed8..efaf0c8097 100644 --- a/cypress/e2e/data-import/e2e/match-on-instance-identifier-scen1.cy.js +++ b/cypress/e2e/data-import/e2e/match-on-instance-identifier-scen1.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -53,7 +53,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: 'Identifier: UPC', }; const mappingProfile = { diff --git a/cypress/e2e/data-import/e2e/match-on-instance-identifier-scen2.cy.js b/cypress/e2e/data-import/e2e/match-on-instance-identifier-scen2.cy.js index c361c1541b..82d768bc1a 100644 --- a/cypress/e2e/data-import/e2e/match-on-instance-identifier-scen2.cy.js +++ b/cypress/e2e/data-import/e2e/match-on-instance-identifier-scen2.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -55,7 +55,7 @@ describe('Data Import', () => { subfield: 'z', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: 'Identifier: Invalid UPC', }; const mappingProfile = { diff --git a/cypress/e2e/data-import/e2e/match-on-pol-and-update-instance.cy.js b/cypress/e2e/data-import/e2e/match-on-pol-and-update-instance.cy.js index 5bfb9fe4fd..76c355b629 100644 --- a/cypress/e2e/data-import/e2e/match-on-pol-and-update-instance.cy.js +++ b/cypress/e2e/data-import/e2e/match-on-pol-and-update-instance.cy.js @@ -5,7 +5,7 @@ import { ACTION_NAMES_IN_ACTION_PROFILE, CALL_NUMBER_TYPE_NAMES, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, ITEM_STATUS_NAMES, @@ -104,7 +104,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.pol, }; @@ -151,6 +151,8 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files + FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); cy.getAdminToken().then(() => { Orders.getOrdersApi({ limit: 1, query: `"poNumber"=="${orderNumber}"` }).then((orderId) => { Orders.deleteOrderViaApi(orderId[0].id); @@ -178,8 +180,6 @@ describe('Data Import', () => { profile.mappingProfile.name, ); }); - // delete created files - FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); Users.deleteViaApi(user.userId); }); }); diff --git a/cypress/e2e/data-import/e2e/match-on-pol-and-update-items.cy.js b/cypress/e2e/data-import/e2e/match-on-pol-and-update-items.cy.js index 80bb958ed7..fd2fd3474c 100644 --- a/cypress/e2e/data-import/e2e/match-on-pol-and-update-items.cy.js +++ b/cypress/e2e/data-import/e2e/match-on-pol-and-update-items.cy.js @@ -3,7 +3,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACQUISITION_METHOD_NAMES_IN_PROFILE, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, ITEM_STATUS_NAMES, @@ -127,7 +127,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.pol, }, }, @@ -139,7 +139,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.pol, }, }, @@ -151,7 +151,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.pol, }, }, diff --git a/cypress/e2e/data-import/e2e/match-on-vrn-and-update-items.cy.js b/cypress/e2e/data-import/e2e/match-on-vrn-and-update-items.cy.js index 3e07c6526f..cdb3feca2b 100644 --- a/cypress/e2e/data-import/e2e/match-on-vrn-and-update-items.cy.js +++ b/cypress/e2e/data-import/e2e/match-on-vrn-and-update-items.cy.js @@ -3,7 +3,7 @@ import uuid from 'uuid'; import { ACCEPTED_DATA_TYPE_NAMES, ACQUISITION_METHOD_NAMES_IN_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, ORDER_STATUSES, VENDOR_NAMES, RECORD_STATUSES, @@ -70,15 +70,15 @@ describe('Data Import', () => { const matchProfiles = [ { name: instanceMatchProfileName, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, }, { name: holdingsMatchProfileName, - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, }, { name: itemMatchProfileName, - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, }, ]; @@ -153,12 +153,12 @@ describe('Data Import', () => { }); after('delete test data', () => { + FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); cy.getAdminToken().then(() => { Orders.getOrdersApi({ limit: 1, query: `"poNumber"=="${orderNumber}"` }).then((order) => { Orders.deleteOrderViaApi(order[0].id); }); Users.deleteViaApi(user.userId); - FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); // delete generated profiles SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfilesData.name); SettingsMatchProfiles.deleteMatchProfileByNameViaApi(instanceMatchProfileName); diff --git a/cypress/e2e/data-import/e2e/mrc-import-file-for-modify-marcBib-record.cy.js b/cypress/e2e/data-import/e2e/mrc-import-file-for-modify-marcBib-record.cy.js index dcbcebbba1..5010619e3b 100644 --- a/cypress/e2e/data-import/e2e/mrc-import-file-for-modify-marcBib-record.cy.js +++ b/cypress/e2e/data-import/e2e/mrc-import-file-for-modify-marcBib-record.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, RECORD_STATUSES, } from '../../../support/constants'; @@ -70,7 +70,7 @@ describe.skip('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/e2e/mrc-import-file-for-update-items.cy.js b/cypress/e2e/data-import/e2e/mrc-import-file-for-update-items.cy.js index dfe27ff77c..6e0adedfb5 100644 --- a/cypress/e2e/data-import/e2e/mrc-import-file-for-update-items.cy.js +++ b/cypress/e2e/data-import/e2e/mrc-import-file-for-update-items.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, CALL_NUMBER_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, EXPORT_TRANSFORMATION_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, @@ -11,13 +11,13 @@ import { LOAN_TYPE_NAMES, LOCATION_NAMES, MATERIAL_TYPE_NAMES, - PROFILE_TYPE_NAMES, RECORD_STATUSES, } from '../../../support/constants'; import ExportFile from '../../../support/fragments/data-export/exportFile'; import ExportJobProfiles from '../../../support/fragments/data-export/exportJobProfile/exportJobProfiles'; import ExportFieldMappingProfiles from '../../../support/fragments/data-export/exportMappingProfile/exportFieldMappingProfiles'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; +import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; import DataImport from '../../../support/fragments/data_import/dataImport'; import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; @@ -44,230 +44,104 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('End to end scenarios', () => { let instanceHRID = null; - // profile names for creating - const nameMarcBibMappingProfile = `autotest_marcBib_mapping_profile_${getRandomPostfix()}`; - const nameInstanceMappingProfile = `autotest_instance_mapping_profile_${getRandomPostfix()}`; - const nameHoldingsMappingProfile = `autotest_holdings_mapping_profile_${getRandomPostfix()}`; - const nameItemMappingProfile = `autotest_item_mapping_profile_${getRandomPostfix()}`; - const nameMarcBibActionProfile = `autotest_marcBib_action_profile_${getRandomPostfix()}`; - const nameInstanceActionProfile = `autotest_instance_action_profile_${getRandomPostfix()}`; - const nameHoldingsActionProfile = `autotest_holdings_action_profile_${getRandomPostfix()}`; - const nameItemActionProfile = `autotest_item_action_profile_${getRandomPostfix()}`; - const jobProfileNameCreate = `autotest_job_profile_${getRandomPostfix()}`; - const recordType = 'MARC_BIBLIOGRAPHIC'; + const mappingProfileIds = []; + const actionProfileIds = []; // file names const nameMarcFileForImportCreate = `C343335 autotestFile${getRandomPostfix()}.mrc`; const nameForCSVFile = `autotestFile${getRandomPostfix()}.csv`; const nameMarcFileForImportUpdate = `C343335 autotestFile${getRandomPostfix()}.mrc`; const jobProfileNameForExport = `autoTestJobProf.${getRandomPostfix()}`; - - const marcBibMappingProfile = { - profile: { - id: '', - name: nameMarcBibMappingProfile, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, - mappingDetails: { - name: 'holdings', - recordType: 'MARC_BIBLIOGRAPHIC', - marcMappingDetails: [ - { - order: 0, - action: 'ADD', - field: { - field: '650', - indicator2: '4', - subfields: [ - { - subfield: 'a', - data: { - text: 'Test update', - }, - }, - ], - }, - }, - ], - marcMappingOption: 'MODIFY', - }, - }, + // profile for creating + const marcBibMappingProfileForCreate = { + name: `C343335 create marcBib mapping profile ${getRandomPostfix()}`, + updatingText: `Test update ${getRandomPostfix()}`, + subfield: 'a', + fieldNumber: '650', + indicator2: '4', }; - - const instanceMappingProfile = { - profile: { - id: '', - name: nameInstanceMappingProfile, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, - }, + const instanceMappingProfileForCreate = { + name: `C343335 create instance mapping profile ${getRandomPostfix()}`, }; - - const holdingsMappingProfile = { - profile: { - id: '', - name: nameHoldingsMappingProfile, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, - mappingDetails: { - name: 'holdings', - recordType: 'HOLDINGS', - mappingFields: [ - { - name: 'permanentLocationId', - enabled: true, - path: 'holdings.permanentLocationId', - value: '"Annex (KU/CC/DI/A)"', - }, - ], - }, - }, + const holdingsMappingProfileForCreate = { + name: `C343335 create holdings mapping profile ${getRandomPostfix()}`, + permanentLocation: 'Main Library (KU/CC/DI/M)', }; - - const itemMappingProfile = { - profile: { - id: '', - name: nameItemMappingProfile, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, - mappingDetails: { - name: 'item', - recordType: 'ITEM', - mappingFields: [ - { - name: 'materialType.id', - enabled: true, - path: 'item.materialType.id', - value: '"book"', - acceptedValues: { '1a54b431-2e4f-452d-9cae-9cee66c9a892': 'book' }, - }, - { - name: 'permanentLoanType.id', - enabled: true, - path: 'item.permanentLoanType.id', - value: '"Can circulate"', - acceptedValues: { '2b94c631-fca9-4892-a730-03ee529ffe27': 'Can circulate' }, - }, - { name: 'status.name', enabled: true, path: 'item.status.name', value: '"In process"' }, - ], - }, - }, + const itemMappingProfileForCreate = { + name: `C343335 create item mapping profile ${getRandomPostfix()}`, + materialType: 'book', + permanentLoanType: 'Can circulate', + status: 'Available', }; - - const marcBibActionProfile = { - profile: { - id: '', - name: nameMarcBibActionProfile, - action: 'MODIFY', - folioRecord: recordType, - }, - addedRelations: [ - { - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + const actionProfilesForCreate = [ + { + actionProfile: { + name: `C343335 create marcBib action profile ${getRandomPostfix()}`, + action: 'MODIFY', + folioRecordType: 'MARC_BIBLIOGRAPHIC', }, - ], - deletedRelations: [], - }; - - const instanceActionProfile = { - profile: { - id: '', - name: nameInstanceActionProfile, - action: 'CREATE', - folioRecord: 'INSTANCE', }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + { + actionProfile: { + name: `C343335 create instance action profile ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', }, - ], - deletedRelations: [], - }; - - const holdingsActionProfile = { - profile: { - id: '', - name: nameHoldingsActionProfile, - action: 'CREATE', - folioRecord: 'HOLDINGS', }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + { + actionProfile: { + name: `C343335 create holdings action profile ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'HOLDINGS', }, - ], - deletedRelations: [], - }; - - const itemActionProfile = { - profile: { - id: '', - name: nameItemActionProfile, - action: 'CREATE', - folioRecord: 'ITEM', }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + { + actionProfile: { + name: `C343335 create item action profile ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'ITEM', }, - ], - deletedRelations: [], - }; - - // TODO redesine classes inherites - const testData = [ - { mappingProfile: marcBibMappingProfile, actionProfile: marcBibActionProfile }, - { mappingProfile: instanceMappingProfile, actionProfile: instanceActionProfile }, - { mappingProfile: holdingsMappingProfile, actionProfile: holdingsActionProfile }, - { mappingProfile: itemMappingProfile, actionProfile: itemActionProfile }, + }, ]; - + const jobProfileForCreate = { + name: `C343335 create job profile ${getRandomPostfix()}`, + }; + // profiles for updating const collectionOfMappingAndActionProfiles = [ { mappingProfile: { typeValue: FOLIO_RECORD_TYPE.INSTANCE, - name: `autotestMappingInstance${getRandomPostfix()}`, + name: `C343335 autotestMappingInstance${getRandomPostfix()}`, }, actionProfile: { typeValue: FOLIO_RECORD_TYPE.INSTANCE, - name: `autotestActionInstance${getRandomPostfix()}`, + name: `C343335 autotestActionInstance${getRandomPostfix()}`, action: ACTION_NAMES_IN_ACTION_PROFILE.UPDATE, }, }, { mappingProfile: { typeValue: FOLIO_RECORD_TYPE.HOLDINGS, - name: `autotestMappingHoldings${getRandomPostfix()}`, + name: `C343335 autotestMappingHoldings${getRandomPostfix()}`, callNumberType: `"${CALL_NUMBER_TYPE_NAMES.LIBRARY_OF_CONGRESS}"`, permanentLocation: `"${LOCATION_NAMES.ONLINE}"`, }, actionProfile: { typeValue: FOLIO_RECORD_TYPE.HOLDINGS, - name: `autotestActionHoldings${getRandomPostfix()}`, + name: `C343335 autotestActionHoldings${getRandomPostfix()}`, action: ACTION_NAMES_IN_ACTION_PROFILE.UPDATE, }, }, { mappingProfile: { typeValue: FOLIO_RECORD_TYPE.ITEM, - name: `autotestMappingItem${getRandomPostfix()}`, + name: `C343335 autotestMappingItem${getRandomPostfix()}`, materialType: `"${MATERIAL_TYPE_NAMES.ELECTRONIC_RESOURCE}"`, status: ITEM_STATUS_NAMES.AVAILABLE, permanentLoanType: LOAN_TYPE_NAMES.CAN_CIRCULATE, }, actionProfile: { typeValue: FOLIO_RECORD_TYPE.ITEM, - name: `autotestActionItem${getRandomPostfix()}`, + name: `C343335 autotestActionItem${getRandomPostfix()}`, action: ACTION_NAMES_IN_ACTION_PROFILE.UPDATE, }, }, @@ -276,7 +150,7 @@ describe('Data Import', () => { const collectionOfMatchProfiles = [ { matchProfile: { - profileName: `autotestMatchInstance${getRandomPostfix()}`, + profileName: `C343335 autotestMatchInstance${getRandomPostfix()}`, incomingRecordFields: { field: '001', }, @@ -284,42 +158,42 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }, }, { matchProfile: { - profileName: `autotestMatchHoldings${getRandomPostfix()}`, + profileName: `C343335 autotestMatchHoldings${getRandomPostfix()}`, incomingRecordFields: { field: '901', subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsHrid, }, }, { matchProfile: { - profileName: `autotestMatchItem${getRandomPostfix()}`, + profileName: `C343335 autotestMatchItem${getRandomPostfix()}`, incomingRecordFields: { field: '902', subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.itemHrid, }, }, ]; const jobProfileForUpdate = { ...NewJobProfile.defaultJobProfile, - profileName: `autotestJobProf${getRandomPostfix()}`, + profileName: `C343335 autotestJobProf${getRandomPostfix()}`, acceptedType: ACCEPTED_DATA_TYPE_NAMES.MARC, }; // create Field mapping profile for export const exportMappingProfile = { - name: `autoTestMappingProf.${getRandomPostfix()}`, + name: `C343335 autoTestMappingProf.${getRandomPostfix()}`, holdingsTransformation: EXPORT_TRANSFORMATION_NAMES.HOLDINGS_HRID, holdingsMarcField: '901', subfieldForHoldings: '$a', @@ -330,35 +204,70 @@ describe('Data Import', () => { beforeEach('Create test data and login', () => { cy.getAdminToken(); - cy.loginAsAdmin({ path: TopMenu.dataImportPath, waiter: DataImport.waitLoading }); + NewFieldMappingProfile.createModifyMarcBibMappingProfileViaApi( + marcBibMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); - const jobProfile = { - profile: { - name: jobProfileNameCreate, - dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, - }, - addedRelations: [], - deletedRelations: [], - }; + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[0].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }); + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + instanceMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); - testData.jobProfileForCreate = jobProfile; + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[1].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }); + NewFieldMappingProfile.createHoldingsMappingProfileViaApi( + holdingsMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); - testData.forEach((specialPair) => { - cy.createOnePairMappingAndActionProfiles( - specialPair.mappingProfile, - specialPair.actionProfile, - ).then((idActionProfile) => { - cy.addJobProfileRelation(testData.jobProfileForCreate.addedRelations, idActionProfile); + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[2].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); }); }); - SettingsJobProfiles.createJobProfileViaApi(testData.jobProfileForCreate).then( - (bodyWithjobProfile) => { - testData.jobProfileForCreate.id = bodyWithjobProfile.body.id; - }, - ); + NewFieldMappingProfile.createItemMappingProfileViaApi(itemMappingProfileForCreate) + .then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); + + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[3].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }) + .then(() => { + NewJobProfile.createJobProfileWithLinkedFourActionProfilesViaApi( + jobProfileForCreate, + actionProfileIds[0], + actionProfileIds[1], + actionProfileIds[2], + actionProfileIds[3], + ); + }); + + cy.loginAsAdmin({ path: TopMenu.dataImportPath, waiter: DataImport.waitLoading }); }); afterEach('Delete test data', () => { + // delete created files in fixtures + FileManager.deleteFile(`cypress/fixtures/${nameMarcFileForImportUpdate}`); + FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); cy.getAdminToken().then(() => { // delete generated profiles SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForUpdate.profileName); @@ -371,18 +280,13 @@ describe('Data Import', () => { profile.mappingProfile.name, ); }); - SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileNameCreate); - SettingsActionProfiles.deleteActionProfileByNameViaApi(nameMarcBibActionProfile); - SettingsActionProfiles.deleteActionProfileByNameViaApi(nameInstanceActionProfile); - SettingsActionProfiles.deleteActionProfileByNameViaApi(nameHoldingsActionProfile); - SettingsActionProfiles.deleteActionProfileByNameViaApi(nameItemActionProfile); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(nameMarcBibMappingProfile); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(nameInstanceMappingProfile); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(nameHoldingsMappingProfile); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(nameItemMappingProfile); - // delete created files in fixtures - FileManager.deleteFile(`cypress/fixtures/${nameMarcFileForImportUpdate}`); - FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); + SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForCreate.name); + actionProfileIds.forEach((id) => { + SettingsActionProfiles.deleteActionProfileViaApi(id); + }); + mappingProfileIds.forEach((id) => { + SettingsFieldMappingProfiles.deleteMappingProfileViaApi(id); + }); cy.getInstance({ limit: 1, expandAll: true, query: `"hrid"=="${instanceHRID}"` }).then( (instance) => { cy.deleteItemViaApi(instance.items[0].id); @@ -437,7 +341,7 @@ describe('Data Import', () => { // upload a marc file for creating of the new instance, holding and item DataImport.uploadFile('oneMarcBib.mrc', nameMarcFileForImportCreate); JobProfiles.waitFileIsUploaded(); - JobProfiles.search(testData.jobProfileForCreate.profile.name); + JobProfiles.search(jobProfileForCreate.name); JobProfiles.runImportFile(); Logs.waitFileIsImported(nameMarcFileForImportCreate); Logs.checkStatusOfJobProfile(JOB_STATUS_NAMES.COMPLETED); diff --git a/cypress/e2e/data-import/e2e/mrc-import-with-matching-001.cy.js b/cypress/e2e/data-import/e2e/mrc-import-with-matching-001.cy.js index 6baa21ea95..96832544e9 100644 --- a/cypress/e2e/data-import/e2e/mrc-import-with-matching-001.cy.js +++ b/cypress/e2e/data-import/e2e/mrc-import-with-matching-001.cy.js @@ -1,8 +1,8 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, + EXISTING_RECORD_NAMES, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -48,7 +48,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const mappingProfile = { name: `autoTestMappingProf.${getRandomPostfix()}`, @@ -84,6 +84,9 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files in fixtures + FileManager.deleteFile(`cypress/fixtures/${nameForExportedMarcFile}`); + FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); cy.getAdminToken().then(() => { Users.deleteViaApi(user.userId); // clean up generated profiles @@ -91,9 +94,6 @@ describe('Data Import', () => { SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); - // delete created files in fixtures - FileManager.deleteFile(`cypress/fixtures/${nameForExportedMarcFile}`); - FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); }); }); diff --git a/cypress/e2e/data-import/e2e/mrc-import-with-matching-999ff.cy.js b/cypress/e2e/data-import/e2e/mrc-import-with-matching-999ff.cy.js index 8f9088b8ac..e619827e81 100644 --- a/cypress/e2e/data-import/e2e/mrc-import-with-matching-999ff.cy.js +++ b/cypress/e2e/data-import/e2e/mrc-import-with-matching-999ff.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -75,7 +75,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -88,6 +88,9 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files in fixtures + FileManager.deleteFile(`cypress/fixtures/${nameForExportedMarcFile}`); + FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); cy.getAdminToken().then(() => { // clean up generated profiles SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.profileName); @@ -98,9 +101,6 @@ describe('Data Import', () => { SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfileForExport.name); }); - // delete created files in fixtures - FileManager.deleteFile(`cypress/fixtures/${nameForExportedMarcFile}`); - FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); }); it( diff --git a/cypress/e2e/data-import/importing-marc-authority-files/delete-010-field-of-linked-marc-auth-record-when-010=$0.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/delete-010-field-of-linked-marc-auth-record-when-010=$0.cy.js index fdbfbf0981..17075eae8b 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/delete-010-field-of-linked-marc-auth-record-when-010=$0.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/delete-010-field-of-linked-marc-auth-record-when-010=$0.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -87,7 +87,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -121,7 +121,7 @@ describe('Data Import', () => { cy.getAdminToken(); cy.loginAsAdmin(); // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcAuthViaApi(mappingProfile); diff --git a/cypress/e2e/data-import/importing-marc-authority-files/edit-010-a-with-valid-value-in-linked-marc-authority-record-when-001=$0-by-value-without-prefix.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/edit-010-a-with-valid-value-in-linked-marc-authority-record-when-001=$0-by-value-without-prefix.cy.js index 13b7efc2b8..2b88ae1794 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/edit-010-a-with-valid-value-in-linked-marc-authority-record-when-001=$0-by-value-without-prefix.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/edit-010-a-with-valid-value-in-linked-marc-authority-record-when-001=$0-by-value-without-prefix.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -85,7 +85,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -117,7 +117,7 @@ describe('Data Import', () => { cy.getAdminToken(); cy.loginAsAdmin(); // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcAuthViaApi(mappingProfile); diff --git a/cypress/e2e/data-import/importing-marc-authority-files/import-marc-authority-json-tab-error-for-duplicated-records.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/import-marc-authority-json-tab-error-for-duplicated-records.cy.js index b26a5a9987..7389aa5b49 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/import-marc-authority-json-tab-error-for-duplicated-records.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/import-marc-authority-json-tab-error-for-duplicated-records.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -74,7 +74,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + existingRecordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -97,6 +97,8 @@ describe('Data Import', () => { }); after('delete test data', () => { + FileManager.deleteFile(`cypress/fixtures/${testData.marcAuthorityCreate.editedFileName}`); + FileManager.deleteFile(`cypress/fixtures/${testData.marcAuthorityUpdate.editedFileName}`); cy.getAdminToken().then(() => { Users.deleteViaApi(testData.user.userId); SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.profileName); @@ -104,8 +106,6 @@ describe('Data Import', () => { SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); MarcAuthority.deleteViaAPI(testData.createdAuthorityIDs[0]); - FileManager.deleteFile(`cypress/fixtures/${testData.marcAuthorityCreate.editedFileName}`); - FileManager.deleteFile(`cypress/fixtures/${testData.marcAuthorityUpdate.editedFileName}`); }); }); diff --git a/cypress/e2e/data-import/importing-marc-authority-files/import-marc-authority-records-with-999-ff-field-and-without.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/import-marc-authority-records-with-999-ff-field-and-without.cy.js index aeed4f2a92..6d8a0c0e60 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/import-marc-authority-records-with-999-ff-field-and-without.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/import-marc-authority-records-with-999-ff-field-and-without.cy.js @@ -37,7 +37,6 @@ describe('Data Import', () => { 'C359207 Checking the import to Create MARC Authority records, when incoming records do and do not have 999 ff field (folijet)', { tags: ['criticalPath', 'folijet'] }, () => { - // TODO delete reload after fix https://issues.folio.org/browse/MODDATAIMP-691 DataImport.verifyUploadState(); // upload the first .mrc file DataImport.uploadFile('marcAuthFileC359207.mrc', fileName); diff --git a/cypress/e2e/data-import/importing-marc-authority-files/import-marcAuth-without-010-job-profile-matching-010-update-and-create-action.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/import-marcAuth-without-010-job-profile-matching-010-update-and-create-action.cy.js index dd6f30244f..f2df934bb9 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/import-marcAuth-without-010-job-profile-matching-010-update-and-create-action.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/import-marcAuth-without-010-job-profile-matching-010-update-and-create-action.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -60,7 +60,7 @@ describe('Data Import', () => { in2: '', subfield: 'a', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -77,7 +77,7 @@ describe('Data Import', () => { cy.getAdminToken(); cy.loginAsAdmin(); // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcAuthViaApi(mappingProfile); diff --git a/cypress/e2e/data-import/importing-marc-authority-files/marc-authority-update-1XX-tag-value-which-controls-2-marc-bib-records.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/marc-authority-update-1XX-tag-value-which-controls-2-marc-bib-records.cy.js index ff2ea62a39..8ace0d59ba 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/marc-authority-update-1XX-tag-value-which-controls-2-marc-bib-records.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/marc-authority-update-1XX-tag-value-which-controls-2-marc-bib-records.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -79,7 +79,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -139,7 +139,7 @@ describe('Data Import', () => { cy.loginAsAdmin() .then(() => { // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcAuthViaApi(mappingProfile); diff --git a/cypress/e2e/data-import/importing-marc-authority-files/marc-authority-update.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/marc-authority-update.cy.js index 9838cc321e..3c93160e81 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/marc-authority-update.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/marc-authority-update.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, DEFAULT_JOB_PROFILE_NAMES, @@ -72,7 +72,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + existingRecordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-authority-files/update-4XX-field-value-of-linked-marc-authority-record.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/update-4XX-field-value-of-linked-marc-authority-record.cy.js index 6a60e6eebb..4dc091172a 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/update-4XX-field-value-of-linked-marc-authority-record.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/update-4XX-field-value-of-linked-marc-authority-record.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -91,7 +91,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + existingRecordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-does-not-have-005-field.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-does-not-have-005-field.cy.js index 7c12306fd6..8a3821487d 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-does-not-have-005-field.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-does-not-have-005-field.cy.js @@ -3,7 +3,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -68,7 +68,7 @@ describe('Data Import', () => { in2: '', subfield: 'a', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -102,6 +102,8 @@ describe('Data Import', () => { }); after('Delete test data', () => { + FileManager.deleteFile(`cypress/fixtures/${testData.editedFileNameForCreate}`); + FileManager.deleteFile(`cypress/fixtures/${testData.editedFileNameForUpdate}`); cy.getAdminToken(); SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.profileName); SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); @@ -109,8 +111,6 @@ describe('Data Import', () => { SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); Users.deleteViaApi(testData.user.userId); MarcAuthority.deleteViaAPI(testData.createdRecordIDs[0]); - FileManager.deleteFile(`cypress/fixtures/${testData.editedFileNameForCreate}`); - FileManager.deleteFile(`cypress/fixtures/${testData.editedFileNameForUpdate}`); }); it( @@ -148,7 +148,7 @@ describe('Data Import', () => { ); // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcAuthViaApi(mappingProfile); // create Action profile and link it to Field mapping profile diff --git a/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-has-invalid-005.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-has-invalid-005.cy.js index b1df38f572..59231370fd 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-has-invalid-005.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-has-invalid-005.cy.js @@ -3,7 +3,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -69,7 +69,7 @@ describe('Data Import', () => { in2: '', subfield: 'a', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -150,7 +150,7 @@ describe('Data Import', () => { ); // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcAuthViaApi(mappingProfile); // create Action profile and link it to Field mapping profile diff --git a/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-has-valid-005.cy.js b/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-has-valid-005.cy.js index 063305c479..623695de59 100644 --- a/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-has-valid-005.cy.js +++ b/cypress/e2e/data-import/importing-marc-authority-files/update-marcAuth-via-data-import-incoming-record-has-valid-005.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -67,7 +67,7 @@ describe('Data Import', () => { in2: '', subfield: 'a', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -148,7 +148,7 @@ describe('Data Import', () => { ); // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcAuthViaApi(mappingProfile); // create Action profile and link it to Field mapping profile diff --git a/cypress/e2e/data-import/importing-marc-bib-files/001-003-005-handling-for-new-and-update-srs-record.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/001-003-005-handling-for-new-and-update-srs-record.cy.js index 187bbd835b..962e1d6d23 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/001-003-005-handling-for-new-and-update-srs-record.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/001-003-005-handling-for-new-and-update-srs-record.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -63,7 +63,7 @@ describe('Data Import', () => { subfield: 'i', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.instanceUuid, }; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/3-successive-update-actions-for-holdings-proceed-without-errors.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/3-successive-update-actions-for-holdings-proceed-without-errors.cy.js index 7705668f92..9f26eba4ae 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/3-successive-update-actions-for-holdings-proceed-without-errors.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/3-successive-update-actions-for-holdings-proceed-without-errors.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, JOB_STATUS_NAMES, @@ -119,7 +119,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsHrid, }; const jobProfileForUpdate = { @@ -144,6 +144,8 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created files in fixtures + FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); cy.getAdminToken().then(() => { Users.deleteViaApi(user.userId); SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.profileName); @@ -164,9 +166,6 @@ describe('Data Import', () => { }, ); }); - - // delete created files in fixtures - FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); }); it( diff --git a/cypress/e2e/data-import/importing-marc-bib-files/action-and-field-mapping-update-holdings.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/action-and-field-mapping-update-holdings.cy.js index c249d12cdd..444d1b0bbc 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/action-and-field-mapping-update-holdings.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/action-and-field-mapping-update-holdings.cy.js @@ -1,18 +1,16 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, LOCATION_NAMES, - RECORD_STATUSES, } from '../../../support/constants'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; import DataImport from '../../../support/fragments/data_import/dataImport'; import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; -import FileDetails from '../../../support/fragments/data_import/logs/fileDetails'; import Logs from '../../../support/fragments/data_import/logs/logs'; import FieldMappingProfileView from '../../../support/fragments/data_import/mapping_profiles/fieldMappingProfileView'; import FieldMappingProfiles from '../../../support/fragments/data_import/mapping_profiles/fieldMappingProfiles'; @@ -38,6 +36,8 @@ describe('Data Import', () => { describe('Importing MARC Bib files', () => { let instanceHrid; let holdingsHrId; + let instanceId; + let holdingsId; const filePathToUpload = 'marcBibFileForC11106.mrc'; const editedMarcFileName = `C11106 autotestFileName${getRandomPostfix()}.mrc`; const marcFileName = `C11106 autotestFileName${getRandomPostfix()}.mrc`; @@ -101,7 +101,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsHrid, }; const jobProfileForUpdate = { @@ -198,13 +198,9 @@ describe('Data Import', () => { jobProfileForCreate.profileName, ).then((response) => { instanceHrid = response[0].instance.hrid; - }); - - cy.visit(TopMenu.dataImportPath); - Logs.openFileDetails(marcFileName); - FileDetails.openHoldingsInInventory(RECORD_STATUSES.CREATED); - HoldingsRecordView.getHoldingsHrId().then((initialHrId) => { - holdingsHrId = initialHrId; + instanceId = response[0].instance.id; + holdingsHrId = response[0].holdings.hrid; + holdingsId = response[0].holdings.id; }); }); @@ -222,12 +218,8 @@ describe('Data Import', () => { }); SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); - cy.getInstance({ limit: 1, expandAll: true, query: `"hrid"=="${instanceHrid}"` }).then( - (instance) => { - cy.deleteHoldingRecordViaApi(instance.holdings[0].id); - InventoryInstance.deleteInstanceViaApi(instance.id); - }, - ); + cy.deleteHoldingRecordViaApi(holdingsId); + InventoryInstance.deleteInstanceViaApi(instanceId); }); }); diff --git a/cypress/e2e/data-import/importing-marc-bib-files/action-profile-is-only-unlinked-once-when-used-in-multiple-times-in-job-profile.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/action-profile-is-only-unlinked-once-when-used-in-multiple-times-in-job-profile.cy.js index c1b6ab80de..a345ef9b9f 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/action-profile-is-only-unlinked-once-when-used-in-multiple-times-in-job-profile.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/action-profile-is-only-unlinked-once-when-used-in-multiple-times-in-job-profile.cy.js @@ -1,6 +1,6 @@ import { ACCEPTED_DATA_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; @@ -43,7 +43,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { profileName: `C423473 Unlink job profile test${getRandomPostfix()}`, @@ -51,6 +51,7 @@ describe('Data Import', () => { }; before('login', () => { + cy.getAdminToken(); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/add-$9-to-linkable-fields.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/add-$9-to-linkable-fields.cy.js index c4292f0b03..d44f29e8e3 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/add-$9-to-linkable-fields.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/add-$9-to-linkable-fields.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -98,7 +98,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/add-subfields-to-linked-fields.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/add-subfields-to-linked-fields.cy.js index 9dc31f2ed0..e401f2092f 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/add-subfields-to-linked-fields.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/add-subfields-to-linked-fields.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, RECORD_STATUSES, DEFAULT_JOB_PROFILE_NAMES, @@ -63,7 +63,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -133,7 +133,7 @@ describe('Data Import', () => { cy.loginAsAdmin().then(() => { // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile); // create Action profile and link it to Field mapping profile diff --git a/cypress/e2e/data-import/importing-marc-bib-files/can't-delete-protected-linked-fields-using-update-marcBib.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/can't-delete-protected-linked-fields-using-update-marcBib.cy.js index 98fc2ad43c..cbb8e5b4f6 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/can't-delete-protected-linked-fields-using-update-marcBib.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/can't-delete-protected-linked-fields-using-update-marcBib.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -124,7 +124,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/create-holdings-and-item-when-job-profile-not-create-instance.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/create-holdings-and-item-when-job-profile-not-create-instance.cy.js index 1db54f0153..5f84665f2c 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/create-holdings-and-item-when-job-profile-not-create-instance.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/create-holdings-and-item-when-job-profile-not-create-instance.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, ITEM_STATUS_NAMES, JOB_STATUS_NAMES, @@ -78,7 +78,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; const jobProfile = { diff --git a/cypress/e2e/data-import/importing-marc-bib-files/creation-of-auth-record-with-non-matches-create.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/creation-of-auth-record-with-non-matches-create.cy.js index 1a39d4f108..fc0b9dbf07 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/creation-of-auth-record-with-non-matches-create.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/creation-of-auth-record-with-non-matches-create.cy.js @@ -1,6 +1,6 @@ import { ACCEPTED_DATA_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, JOB_STATUS_NAMES, RECORD_STATUSES, } from '../../../support/constants'; @@ -43,7 +43,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + existingRecordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/default-mapping-of-index-title-from-marc-record.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/default-mapping-of-index-title-from-marc-record.cy.js index 0ce288400c..4c1b569577 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/default-mapping-of-index-title-from-marc-record.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/default-mapping-of-index-title-from-marc-record.cy.js @@ -57,6 +57,7 @@ describe('Data Import', () => { }); after('Delete test data', () => { + FileManager.deleteFile(`cypress/fixtures/${editedFileForUpload}`); cy.getAdminToken().then(() => { Users.deleteViaApi(user.userId); instanceHrids.forEach((hrid) => { @@ -67,7 +68,6 @@ describe('Data Import', () => { ); }); }); - FileManager.deleteFile(`cypress/fixtures/${editedFileForUpload}`); }); it( diff --git a/cypress/e2e/data-import/importing-marc-bib-files/delete-$0-subfield-from-linked-not-repeatable-marc-bib.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/delete-$0-subfield-from-linked-not-repeatable-marc-bib.cy.js index af57c23e1d..752cc8cf56 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/delete-$0-subfield-from-linked-not-repeatable-marc-bib.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/delete-$0-subfield-from-linked-not-repeatable-marc-bib.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -104,7 +104,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/delete-$9-from-not-linkable-marc-bib-fields.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/delete-$9-from-not-linkable-marc-bib-fields.cy.js index 106d1c6d40..31d5ebf159 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/delete-$9-from-not-linkable-marc-bib-fields.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/delete-$9-from-not-linkable-marc-bib-fields.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -99,7 +99,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/delete-linked-field-which-controlled-by-marc-authority.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/delete-linked-field-which-controlled-by-marc-authority.cy.js index 34a217011d..b87c11511e 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/delete-linked-field-which-controlled-by-marc-authority.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/delete-linked-field-which-controlled-by-marc-authority.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -91,7 +91,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/delete-repeatable-linked-field-controlled-by-marcAuth.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/delete-repeatable-linked-field-controlled-by-marcAuth.cy.js index 655beb4e29..cd1fe487b0 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/delete-repeatable-linked-field-controlled-by-marcAuth.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/delete-repeatable-linked-field-controlled-by-marcAuth.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -95,7 +95,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/delete-uncontrolled-subfield-of-linked-marcBib.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/delete-uncontrolled-subfield-of-linked-marcBib.cy.js index c12277154a..44274f031f 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/delete-uncontrolled-subfield-of-linked-marcBib.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/delete-uncontrolled-subfield-of-linked-marcBib.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -110,7 +110,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/disallow-editing-of-instance-records-that-have-underlying-srs-marc-records.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/disallow-editing-of-instance-records-that-have-underlying-srs-marc-records.cy.js index 0c568169f8..c21cbd14b7 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/disallow-editing-of-instance-records-that-have-underlying-srs-marc-records.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/disallow-editing-of-instance-records-that-have-underlying-srs-marc-records.cy.js @@ -26,7 +26,6 @@ describe('Data Import', () => { instanceId = response[0].instance.id; }); - // create temp user with inventoryAll permissions cy.createTempUser([Permissions.inventoryAll.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/edit-protected-and-linked-fields-using-update-marcbib-profile.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/edit-protected-and-linked-fields-using-update-marcbib-profile.cy.js index ef9638fe93..837aafe67f 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/edit-protected-and-linked-fields-using-update-marcbib-profile.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/edit-protected-and-linked-fields-using-update-marcbib-profile.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -72,7 +72,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/error-message-appears-after-importing-file-with-duplicate-records-in-it.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/error-message-appears-after-importing-file-with-duplicate-records-in-it.cy.js index 8113e88797..cd2e6cdfae 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/error-message-appears-after-importing-file-with-duplicate-records-in-it.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/error-message-appears-after-importing-file-with-duplicate-records-in-it.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -53,7 +53,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; const mappingProfile = { diff --git a/cypress/e2e/data-import/importing-marc-bib-files/error-records-not-processed-for-invalid-marc-bibs.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/error-records-not-processed-for-invalid-marc-bibs.cy.js index 42d4142c2a..ab78823ffe 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/error-records-not-processed-for-invalid-marc-bibs.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/error-records-not-processed-for-invalid-marc-bibs.cy.js @@ -17,11 +17,10 @@ describe('Data Import', () => { describe('Importing MARC Bib files', () => { let user; // eslint-disable-next-line - const errorMessage = - '{"errors":[{"name":"io.vertx.core.json.DecodeException","message":"Failed to decode:Illegal unquoted character ((CTRL-CHAR, code 9)): has to be escaped using backslash to be included in name\\n at [Source: (String)\\"{\\"leader\\":\\"01621cas a2200445 a 4500\\",\\"fields\\":[{\\"001\\":\\"in00000012507\\"},{\\"003\\":\\"OCoLC\\"},{\\"008\\":\\"06d0504c20069999txufr pso 0 a0eng c\\"},{\\"015\\":{\\"subfields\\":[],\\"ind1\\":\\";\\",\\"ind2\\":\\"A\\"}},{\\"00\\\\u0009\\":{\\"subfields\\":[],\\"ind1\\":\\" \\",\\"ind2\\":\\" \\"}},{\\"0==\\":{\\"subfields\\":[],\\"ind1\\":\\"d\\",\\"ind2\\":\\"s\\"}},{\\"\\\\u0009\\\\A\\":{\\"subfields\\":[],\\"ind1\\":\\"5\\",\\"ind2\\":\\"8\\"}},{\\"022\\":{\\"subfields\\":[{\\"a\\":\\"1 931-7603\\"},{\\"l\\":\\"1931-7603\\"},{\\"2\\":\\"1\\"}],\\"ind1\\":\\"0\\",\\"ind2\\":\\" \\"}},{\\"035\\":{\\"subfields\\":[{\\"a\\":\\"(OCoLC)68188263\\"},{\\"z\\":\\"(OCoLC)1058285745\\"}],\\"ind1\\":\\"\\"[truncated 2505 chars]; line: 1, column: 192]"}]}'; + const errorMessage = 'Failed to decode'; const nameMarcFileForImportCreate = `C350750 autotestFile${getRandomPostfix()}.mrc`; const jobProfileToRun = DEFAULT_JOB_PROFILE_NAMES.CREATE_INSTANCE_AND_SRS; - const instanceTitle = 'The Journal of ecclesiastical history.'; + const instanceTitle = 'No content'; before('Login', () => { cy.createTempUser([ diff --git a/cypress/e2e/data-import/importing-marc-bib-files/export-from-inventory-edit-file-and-reimport-to-update-items.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/export-from-inventory-edit-file-and-reimport-to-update-items.cy.js index 35b3f899fa..102627122e 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/export-from-inventory-edit-file-and-reimport-to-update-items.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/export-from-inventory-edit-file-and-reimport-to-update-items.cy.js @@ -1,15 +1,15 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, ITEM_STATUS_NAMES, LOCATION_NAMES, - PROFILE_TYPE_NAMES, RECORD_STATUSES, } from '../../../support/constants'; import ExportFile from '../../../support/fragments/data-export/exportFile'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; +import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; import DataImport from '../../../support/fragments/data_import/dataImport'; import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; @@ -40,6 +40,8 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('Importing MARC Bib files', () => { let instanceHrid; + const mappingProfileIds = []; + const actionProfileIds = []; const quantityOfItems = '1'; const uniqSubject = `35678123678${GenerateIdentifierCode.getRandomIdentifierCode()}`; const filePathForUpload = 'marcFileForC11123.mrc'; @@ -49,8 +51,6 @@ describe('Data Import', () => { holdingsLocation: `${LOCATION_NAMES.MAIN_LIBRARY_UI} >`, itemStatus: ITEM_STATUS_NAMES.AVAILABLE, }; - const permanentLocation = LOCATION_NAMES.MAIN_LIBRARY_UI; - const recordType = 'MARC_BIBLIOGRAPHIC'; const note = 'Test administrative note for item'; // unique file name const editedMarcFileNameForCreate = `C11123 autotestFile${getRandomPostfix()}.mrc`; @@ -59,145 +59,46 @@ describe('Data Import', () => { const nameMarcFileForUpload = `C11123 autotestFile${getRandomPostfix()}.mrc`; const editedMarcFileName = `C11123 fileWithItemHrid${getRandomPostfix()}.mrc`; const nameMarcFileForUpdate = `C11123 autotestFileForUpdateItem${getRandomPostfix()}.mrc`; - // unique profile names for creating - const instanceMappingProfileNameForCreate = `C11123 autotest_instance_mapping_profile_${getRandomPostfix()}`; - const holdingsMappingProfileNameForCreate = `C11123 autotest_holdings_mapping_profile_${getRandomPostfix()}`; - const itemMappingProfileNameForCreate = `C11123 autotest_item_mapping_profile_${getRandomPostfix()}`; - const instanceActionProfileNameForCreate = `C11123 autotest_instance_action_profile_${getRandomPostfix()}`; - const holdingsActionProfileNameForCreate = `C11123 autotest_holdings_action_profile_${getRandomPostfix()}`; - const itemActionProfileNameForCreate = `C11123 autotest_item_action_profile_${getRandomPostfix()}`; - const jobProfileNameForCreate = `C11123 autotest_job_profile_${getRandomPostfix()}`; // profiles for creating instance, holdings, item const instanceMappingProfileForCreate = { - profile: { - name: instanceMappingProfileNameForCreate, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, - }, + name: `C11123 autotest_instance_mapping_profile_${getRandomPostfix()}`, }; const holdingsMappingProfileForCreate = { - profile: { - name: holdingsMappingProfileNameForCreate, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, - mappingDetails: { - name: 'holdings', - recordType: 'HOLDINGS', - mappingFields: [ - { - name: 'permanentLocationId', - enabled: true, - path: 'holdings.permanentLocationId', - value: `"${permanentLocation}"`, - }, - ], - }, - }, + name: `C11123 autotest_holdings_mapping_profile_${getRandomPostfix()}`, + permanentLocation: 'Main Library (KU/CC/DI/M)', }; const itemMappingProfileForCreate = { - profile: { - name: itemMappingProfileNameForCreate, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, - mappingDetails: { - name: 'item', - recordType: 'ITEM', - mappingFields: [ - { - name: 'materialType.id', - enabled: true, - path: 'item.materialType.id', - value: '"book"', - acceptedValues: { '1a54b431-2e4f-452d-9cae-9cee66c9a892': 'book' }, - }, - { - name: 'permanentLoanType.id', - enabled: true, - path: 'item.permanentLoanType.id', - value: '"Can circulate"', - acceptedValues: { '2b94c631-fca9-4892-a730-03ee529ffe27': 'Can circulate' }, - }, - { name: 'status.name', enabled: true, path: 'item.status.name', value: '"Available"' }, - { - name: 'permanentLocation.id', - enabled: 'true', - path: 'item.permanentLocation.id', - value: `"${permanentLocation}"`, - acceptedValues: { - 'fcd64ce1-6995-48f0-840e-89ffa2288371': 'Main Library (KU/CC/DI/M)', - }, - }, - ], - }, - }, + name: `C11123 autotest_item_mapping_profile_${getRandomPostfix()}`, + materialType: 'book', + permanentLoanType: 'Can circulate', + status: 'Available', }; - const instanceActionProfileForCreate = { - profile: { - name: instanceActionProfileNameForCreate, - action: 'CREATE', - folioRecord: 'INSTANCE', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }; - const holdingsActionProfileForCreate = { - profile: { - name: holdingsActionProfileNameForCreate, - action: 'CREATE', - folioRecord: 'HOLDINGS', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + const actionProfilesForCreate = [ + { + actionProfile: { + name: `C11123 autotest_instance_action_profile_${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', }, - ], - deletedRelations: [], - }; - const itemActionProfileForCreate = { - profile: { - name: itemActionProfileNameForCreate, - action: 'CREATE', - folioRecord: 'ITEM', }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }; - const testData = [ { - mappingProfile: instanceMappingProfileForCreate, - actionProfile: instanceActionProfileForCreate, + actionProfile: { + name: `C11123 autotest_holdings_action_profile_${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'HOLDINGS', + }, }, { - mappingProfile: holdingsMappingProfileForCreate, - actionProfile: holdingsActionProfileForCreate, + actionProfile: { + name: `C11123 autotest_item_action_profile_${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'ITEM', + }, }, - { mappingProfile: itemMappingProfileForCreate, actionProfile: itemActionProfileForCreate }, ]; const jobProfileForCreate = { - profile: { - name: jobProfileNameForCreate, - dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, - }, - addedRelations: [], - deletedRelations: [], + name: `C11123 autotest_job_profile_${getRandomPostfix()}`, }; // profiles for updating item const matchProfile = { @@ -209,7 +110,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.itemHrid, }; const itemMappingProfileForUpdate = { @@ -229,21 +130,49 @@ describe('Data Import', () => { before('create test data', () => { cy.getAdminToken(); - testData.jobProfileForCreate = jobProfileForCreate; + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + instanceMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); - testData.forEach((specialPair) => { - cy.createOnePairMappingAndActionProfiles( - specialPair.mappingProfile, - specialPair.actionProfile, - ).then((idActionProfile) => { - cy.addJobProfileRelation(testData.jobProfileForCreate.addedRelations, idActionProfile); + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[1].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); }); }); - SettingsJobProfiles.createJobProfileViaApi(testData.jobProfileForCreate).then( - (bodyWithjobProfile) => { - testData.jobProfileForCreate.id = bodyWithjobProfile.body.id; - }, - ); + NewFieldMappingProfile.createHoldingsMappingProfileViaApi( + holdingsMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); + + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[2].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }); + NewFieldMappingProfile.createItemMappingProfileViaApi(itemMappingProfileForCreate) + .then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); + + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[3].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }) + .then(() => { + NewJobProfile.createJobProfileWithLinkedThreeActionProfilesViaApi( + jobProfileForCreate, + actionProfileIds[0], + actionProfileIds[1], + actionProfileIds[2], + ); + }); // change file to add uniq subject DataImport.editMarcFile( @@ -256,7 +185,7 @@ describe('Data Import', () => { DataImport.uploadFileViaApi( editedMarcFileNameForCreate, marcFileForCreate, - testData.jobProfileForCreate.profile.name, + jobProfileForCreate.name, ).then((response) => { instanceHrid = response[0].instance.hrid; }); @@ -264,29 +193,19 @@ describe('Data Import', () => { }); after('delete test data', () => { + FileManager.deleteFile(`cypress/fixtures/${nameMarcFileForUpload}`); + FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); cy.getAdminToken().then(() => { SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForCreate.profile.name); SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForUpdate.profileName); SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - instanceActionProfileForCreate.profile.name, - ); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - holdingsActionProfileForCreate.profile.name, - ); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - itemActionProfileForCreate.profile.name, - ); + actionProfileIds.forEach((id) => { + SettingsActionProfiles.deleteActionProfileViaApi(id); + }); SettingsActionProfiles.deleteActionProfileByNameViaApi(itemActionProfileForUpdate.name); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - instanceMappingProfileForCreate.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - holdingsMappingProfileForCreate.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - itemMappingProfileForCreate.profile.name, - ); + mappingProfileIds.forEach((id) => { + SettingsFieldMappingProfiles.deleteMappingProfileViaApi(id); + }); SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( itemMappingProfileForUpdate.name, ); @@ -298,8 +217,6 @@ describe('Data Import', () => { }, ); }); - FileManager.deleteFile(`cypress/fixtures/${nameMarcFileForUpload}`); - FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); }); it( @@ -394,7 +311,7 @@ describe('Data Import', () => { cy.visit(TopMenu.inventoryPath); InventorySearchAndFilter.searchInstanceByHRID(instanceHrid); InstanceRecordView.verifyInstancePaneExists(); - InventoryHoldings.checkIfExpanded(`${permanentLocation} >`, true); + InventoryHoldings.checkIfExpanded(`${LOCATION_NAMES.MAIN_LIBRARY_UI} >`, true); InventoryInstance.openItemByBarcode('No barcode'); ItemRecordView.checkItemAdministrativeNote(note); }, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/import-with-2-submatches-for-update-instance-holdings-item-via-vrn.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/import-with-2-submatches-for-update-instance-holdings-item-via-vrn.cy.js index 53a1586153..1d1bbdb0ac 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/import-with-2-submatches-for-update-instance-holdings-item-via-vrn.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/import-with-2-submatches-for-update-instance-holdings-item-via-vrn.cy.js @@ -1,7 +1,7 @@ import { ACQUISITION_METHOD_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, INSTANCE_STATUS_TERM_NAMES, @@ -155,7 +155,7 @@ describe('Data Import', () => { subfield: 'c', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.vrn, }, }, @@ -167,7 +167,7 @@ describe('Data Import', () => { subfield: 'c', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.vrn, }, }, @@ -179,7 +179,7 @@ describe('Data Import', () => { subfield: 'c', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.vrn, }, }, @@ -271,6 +271,7 @@ describe('Data Import', () => { }); after('delete test data', () => { + FileManager.deleteFile(`cypress/fixtures/${testData.editedMarcFileName}`); cy.getAdminToken().then(() => { InstanceStatusTypes.getViaApi({ query: '"name"=="Electronic Resource"' }).then((type) => { if (type.length !== 0) { @@ -303,7 +304,6 @@ describe('Data Import', () => { }, ); }); - FileManager.deleteFile(`cypress/fixtures/${testData.editedMarcFileName}`); }); it( diff --git a/cypress/e2e/data-import/importing-marc-bib-files/instance-field-mapping-confirm-suppress-checkboxes-when-creating-updating.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/instance-field-mapping-confirm-suppress-checkboxes-when-creating-updating.cy.js index c9bd814d9f..c107962297 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/instance-field-mapping-confirm-suppress-checkboxes-when-creating-updating.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/instance-field-mapping-confirm-suppress-checkboxes-when-creating-updating.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -164,7 +164,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/item-update-via-match-by-status.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/item-update-via-match-by-status.cy.js index 42f66b5a72..f3fc9ce969 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/item-update-via-match-by-status.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/item-update-via-match-by-status.cy.js @@ -1,7 +1,7 @@ /* eslint-disable cypress/no-unnecessary-waiting */ import { ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, ITEM_STATUS_NAMES, LOAN_TYPE_NAMES, @@ -109,7 +109,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.itemHrid, }; @@ -118,7 +118,7 @@ describe('Data Import', () => { incomingStaticValue: ITEM_STATUS_NAMES.AVAILABLE, incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, existingRecordOption: NewMatchProfile.optionsList.status, }; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/marc-bib-import-delete-linked-field.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/marc-bib-import-delete-linked-field.cy.js index 7f7b9b4e3d..6673ed5c48 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/marc-bib-import-delete-linked-field.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/marc-bib-import-delete-linked-field.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -72,7 +72,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/marc-update-select-fields-works-properly.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/marc-update-select-fields-works-properly.cy.js index b44fe2cf61..62827685fa 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/marc-update-select-fields-works-properly.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/marc-update-select-fields-works-properly.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -70,7 +70,7 @@ describe.skip('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/match-on-instance-identifier-scen3.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/match-on-instance-identifier-scen3.cy.js index 929c96731e..d05bb9c720 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/match-on-instance-identifier-scen3.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/match-on-instance-identifier-scen3.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -65,7 +65,7 @@ describe('Data Import', () => { qualifierType: 'Begins with', qualifierValue: '(OCoLC)', compareValue: 'Numerics only', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.identifierOCLC, compareValueInComparison: 'Numerics only', }; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/match-on-instance-identifier-scen4.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/match-on-instance-identifier-scen4.cy.js index 1e09a2140d..3304879cad 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/match-on-instance-identifier-scen4.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/match-on-instance-identifier-scen4.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -67,7 +67,7 @@ describe('Data Import', () => { matchCriterion: 'Exactly matches', qualifierType: 'Begins with', qualifierValue: `(${randomIdentifierCode})`, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.systemControlNumber, }; const mappingProfile = { diff --git a/cypress/e2e/data-import/importing-marc-bib-files/match-on-location.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/match-on-location.cy.js index bbf36e7de2..c79f775442 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/match-on-location.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/match-on-location.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, LOCATION_NAMES, @@ -40,6 +40,9 @@ describe('Data Import', () => { const recordType = 'MARC_BIBLIOGRAPHIC'; const rowNumbers = [0, 1, 2]; const instanceHrids = []; + const instanceIds = []; + const holdingsIds = []; + const itemIds = []; // elements for update items const noteForHoldingsMappingProfile = 'This note for holdings mapping profile'; const noteForItemMappingProfile = 'This note for item mapping profile'; @@ -53,14 +56,14 @@ describe('Data Import', () => { profile: { name: `autotest_instance_mapping_profile_${getRandomPostfix()}`, incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, }, }; const holdingsMappingProfileForCreate = { profile: { name: `autotest_holdings_mapping_profile_${getRandomPostfix()}`, incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, mappingDetails: { name: 'holdings', recordType: 'HOLDINGS', @@ -79,7 +82,7 @@ describe('Data Import', () => { profile: { name: `autotest_item_mapping_profile_${getRandomPostfix()}`, incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, mappingDetails: { name: 'item', recordType: 'ITEM', @@ -192,7 +195,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }, }, { @@ -203,7 +206,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsPermLoc, }, }, @@ -215,7 +218,7 @@ describe('Data Import', () => { subfield: 'b', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.itemPermLoc, }, }, @@ -246,7 +249,6 @@ describe('Data Import', () => { before('create test data', () => { cy.getAdminToken(); - cy.loginAsAdmin(); testData.jobProfileForCreate = jobProfileForCreate; testData.forEach((specialPair) => { @@ -264,51 +266,24 @@ describe('Data Import', () => { ); // upload a marc file for creating of the new instance, holding and item - cy.visit(TopMenu.dataImportPath); - DataImport.verifyUploadState(); - DataImport.uploadFile('marcFileForC17027.mrc', marcFileForCreate); - JobProfiles.waitFileIsUploaded(); - JobProfiles.search(testData.jobProfileForCreate.profile.name); - JobProfiles.runImportFile(); - Logs.waitFileIsImported(marcFileForCreate); - Logs.openFileDetails(marcFileForCreate); - rowNumbers.forEach((rowNumber) => { - FileDetails.checkStatusInColumn( - RECORD_STATUSES.CREATED, - FileDetails.columnNameInResultList.srsMarc, - rowNumber, - ); - FileDetails.checkStatusInColumn( - RECORD_STATUSES.CREATED, - FileDetails.columnNameInResultList.instance, - rowNumber, - ); - FileDetails.checkStatusInColumn( - RECORD_STATUSES.CREATED, - FileDetails.columnNameInResultList.holdings, - rowNumber, - ); - FileDetails.checkStatusInColumn( - RECORD_STATUSES.CREATED, - FileDetails.columnNameInResultList.item, - rowNumber, - ); - }); - FileDetails.checkItemsQuantityInSummaryTable(0, '3'); - // collect instance hrids - rowNumbers.forEach((rowNumber) => { - // need to wait until page will be opened in loop - cy.wait(3000); - cy.visit(TopMenu.dataImportPath); - Logs.openFileDetails(marcFileForCreate); - FileDetails.openInstanceInInventory(RECORD_STATUSES.CREATED, rowNumber); - InventoryInstance.getAssignedHRID().then((initialInstanceHrId) => { - instanceHrids.push(initialInstanceHrId); + DataImport.uploadFileViaApi( + 'marcFileForC17027.mrc', + marcFileForCreate, + testData.jobProfileForCreate.profile.name, + ).then((response) => { + response.forEach((hrids) => instanceHrids.push(hrids.instance.hrid)); + response.forEach((ids) => { + instanceIds.push(ids.instance.id); + holdingsIds.push(ids.holding.id); + itemIds.push(ids.item.id); }); }); }); after('delete test data', () => { + // delete created files + FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); + FileManager.deleteFile(`cypress/fixtures/${fileNameAfterUpdate}`); cy.getAdminToken().then(() => { // delete profiles SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForCreate.profile.name); @@ -342,18 +317,9 @@ describe('Data Import', () => { SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( itemMappingProfileForUpdate.name, ); - // delete created files - FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); - FileManager.deleteFile(`cypress/fixtures/${fileNameAfterUpdate}`); - instanceHrids.forEach((hrid) => { - cy.getInstance({ limit: 1, expandAll: true, query: `"hrid"=="${hrid}"` }).then( - (instance) => { - cy.deleteItemViaApi(instance.items[0].id); - cy.deleteHoldingRecordViaApi(instance.holdings[0].id); - InventoryInstance.deleteInstanceViaApi(instance.id); - }, - ); - }); + itemIds.forEach((id) => cy.deleteItemViaApi(id)); + holdingsIds.forEach((id) => cy.deleteHoldingRecordViaApi(id)); + instanceIds.forEach((id) => InventoryInstance.deleteInstanceViaApi(id)); }); }); diff --git a/cypress/e2e/data-import/importing-marc-bib-files/match-on-oclc-and-update-instance.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/match-on-oclc-and-update-instance.cy.js index 1d95662dbf..1bcfaf8824 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/match-on-oclc-and-update-instance.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/match-on-oclc-and-update-instance.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -86,7 +86,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: 'Identifier: OCLC', }; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/matching-on-newly-created-035-does-not-work.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/matching-on-newly-created-035-does-not-work.cy.js index c7c343b9a3..d2d2d838bd 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/matching-on-newly-created-035-does-not-work.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/matching-on-newly-created-035-does-not-work.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -63,7 +63,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.systemControlNumber, }; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/nest-matches-under-actions-in-a-job-profile.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/nest-matches-under-actions-in-a-job-profile.cy.js index 3e70beeba8..c94403adb5 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/nest-matches-under-actions-in-a-job-profile.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/nest-matches-under-actions-in-a-job-profile.cy.js @@ -1,16 +1,15 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, - LOCATION_NAMES, - PROFILE_TYPE_NAMES, RECORD_STATUSES, } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import ExportFile from '../../../support/fragments/data-export/exportFile'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; +import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; import DataImport from '../../../support/fragments/data_import/dataImport'; import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; @@ -43,88 +42,39 @@ describe('Data Import', () => { let user = null; let holdingsHrId = null; let instanceHrid = null; + const mappingProfileIds = []; + const actionProfileIds = []; const holdingsPermanentLocation = 'Online'; - const recordType = 'MARC_BIBLIOGRAPHIC'; const filePathToUpload = 'oneMarcBib.mrc'; const marcFileNameForCreate = `C347894 marcBibFileForCreate${getRandomPostfix()}.mrc`; const exportedFileName = `C347894 exportedMarcFile${getRandomPostfix()}.mrc`; const marcFileNameForUpdate = `C347894 marcBibFileForUpdate${getRandomPostfix()}.mrc`; - // profiles for creating instance, holdings, item + // profiles for creating instance, holdings const instanceMappingProfileForCreate = { - profile: { - name: `C347894 autotest instance mapping profile for create.${getRandomPostfix()}`, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, - }, + name: `C347894 autotest instance mapping profile for create.${getRandomPostfix()}`, }; const holdingsMappingProfileForCreate = { - profile: { - name: `C347894 autotest holdings mapping profile for create.${getRandomPostfix()}`, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, - mappingDetails: { - name: 'holdings', - recordType: 'HOLDINGS', - mappingFields: [ - { - name: 'permanentLocationId', - enabled: true, - path: 'holdings.permanentLocationId', - value: `"${LOCATION_NAMES.ONLINE}"`, - }, - ], - }, - }, - }; - const instanceActionProfileForCreate = { - profile: { - name: `C347894 autotest instance action profile for create.${getRandomPostfix()}`, - action: 'CREATE', - folioRecord: 'INSTANCE', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], + name: `C347894 autotest holdings mapping profile for create.${getRandomPostfix()}`, + permanentLocation: 'Main Library (KU/CC/DI/M)', }; - const holdingsActionProfileForCreate = { - profile: { - name: `C347894 autotest holdings action profile for create.${getRandomPostfix()}`, - action: 'CREATE', - folioRecord: 'HOLDINGS', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }; - const testData = [ + const actionProfilesForCreate = [ { - mappingProfile: instanceMappingProfileForCreate, - actionProfile: instanceActionProfileForCreate, + actionProfile: { + name: `C347894 autotest instance mapping profile for create.${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, }, { - mappingProfile: holdingsMappingProfileForCreate, - actionProfile: holdingsActionProfileForCreate, + actionProfile: { + name: `C347894 autotest holdings mapping profile for create.${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'HOLDINGS', + }, }, ]; const jobProfileForCreate = { - profile: { - name: `C347894 autotest job profile for create.${getRandomPostfix()}`, - dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, - }, - addedRelations: [], - deletedRelations: [], + name: `C347894 autotest job profile for create.${getRandomPostfix()}`, }; // profiles for updating item const instanceMatchProfile = { @@ -133,7 +83,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; const holdingsMatchProfile = { @@ -141,7 +91,7 @@ describe('Data Import', () => { incomingStaticValue: 'Online', incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingRecordOption: NewMatchProfile.optionsList.holdingsPermLoc, }; const collectionOfMappingAndActionProfiles = [ @@ -178,35 +128,43 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); - testData.jobProfileForCreate = jobProfileForCreate; + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + instanceMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); - testData.forEach((specialPair) => { - cy.createOnePairMappingAndActionProfiles( - specialPair.mappingProfile, - specialPair.actionProfile, - ).then((idActionProfile) => { - cy.addJobProfileRelation(testData.jobProfileForCreate.addedRelations, idActionProfile); + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[1].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); }); }); - SettingsJobProfiles.createJobProfileViaApi(testData.jobProfileForCreate).then( - (bodyWithjobProfile) => { - testData.jobProfileForCreate.id = bodyWithjobProfile.body.id; - }, - ); - cy.loginAsAdmin(); - // upload a marc file for creating of the new instance, holding and item - cy.visit(TopMenu.dataImportPath); - DataImport.verifyUploadState(); - DataImport.uploadFile(filePathToUpload, marcFileNameForCreate); - JobProfiles.waitFileIsUploaded(); - JobProfiles.search(testData.jobProfileForCreate.profile.name); - JobProfiles.runImportFile(); - Logs.waitFileIsImported(marcFileNameForCreate); - Logs.checkJobStatus(marcFileNameForCreate, JOB_STATUS_NAMES.COMPLETED); - Logs.openFileDetails(marcFileNameForCreate); - FileDetails.openHoldingsInInventory(RECORD_STATUSES.CREATED); - HoldingsRecordView.getHoldingsHrId().then((initialHrId) => { - holdingsHrId = initialHrId; + NewFieldMappingProfile.createHoldingsMappingProfileViaApi(holdingsMappingProfileForCreate) + .then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); + + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[2].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }) + .then(() => { + NewJobProfile.createJobProfileWithLinkedTwoActionProfilesViaApi( + jobProfileForCreate, + actionProfileIds[0], + actionProfileIds[1], + ); + }); + // upload a marc file for creating of the new instance, holding + DataImport.uploadFileViaApi( + filePathToUpload, + marcFileNameForCreate, + jobProfileForCreate.name, + ).then((response) => { + holdingsHrId = response[0].instance.hrid; }); cy.createTempUser([ @@ -239,18 +197,12 @@ describe('Data Import', () => { profile.mappingProfile.name, ); }); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - instanceActionProfileForCreate.profile.name, - ); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - holdingsActionProfileForCreate.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - instanceMappingProfileForCreate.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - holdingsMappingProfileForCreate.profile.name, - ); + actionProfileIds.forEach((id) => { + SettingsActionProfiles.deleteActionProfileViaApi(id); + }); + mappingProfileIds.forEach((id) => { + SettingsFieldMappingProfiles.deleteMappingProfileViaApi(id); + }); Users.deleteViaApi(user.userId); cy.getInstance({ limit: 1, expandAll: true, query: `"hrid"=="${instanceHrid}"` }).then( (instance) => { diff --git a/cypress/e2e/data-import/importing-marc-bib-files/test-any-versus-all-for-marc-indicators-in-match-profiles.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/test-any-versus-all-for-marc-indicators-in-match-profiles.cy.js index 92fe276297..f423ec6bcf 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/test-any-versus-all-for-marc-indicators-in-match-profiles.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/test-any-versus-all-for-marc-indicators-in-match-profiles.cy.js @@ -1,7 +1,7 @@ import uuid from 'uuid'; import { ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, ITEM_STATUS_NAMES, JOB_STATUS_NAMES, @@ -97,7 +97,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.barcode, }, }, @@ -111,7 +111,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.barcode, }, }, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/test-remove-field-mapping-option.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/test-remove-field-mapping-option.cy.js index bdeec54d9d..35c514e9a1 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/test-remove-field-mapping-option.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/test-remove-field-mapping-option.cy.js @@ -1,7 +1,7 @@ import uuid from 'uuid'; import { ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, ITEM_STATUS_NAMES, JOB_STATUS_NAMES, @@ -108,7 +108,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsHrid, }, }, @@ -120,7 +120,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.barcode, }, }, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-$0-in-linked-repeatable-field.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-$0-in-linked-repeatable-field.cy.js index 669a06e226..d15ca9fe4d 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-$0-in-linked-repeatable-field.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-$0-in-linked-repeatable-field.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -68,7 +68,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-and-not-controlable-subfields.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-and-not-controlable-subfields.cy.js index 86658a4aa3..88b01ea7db 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-and-not-controlable-subfields.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-and-not-controlable-subfields.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -67,7 +67,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-letter-subfield-in-linked-repeatable-field.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-letter-subfield-in-linked-repeatable-field.cy.js index 15244a749f..52d6f70e9d 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-letter-subfield-in-linked-repeatable-field.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-letter-subfield-in-linked-repeatable-field.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -78,7 +78,7 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -133,7 +133,7 @@ describe('Data Import', () => { }); cy.loginAsAdmin({ path: TopMenu.dataImportPath, waiter: DataImport.waitLoading }); // create Match profile - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); // create Field mapping profile NewFieldMappingProfile.createMappingProfileForUpdateMarcBibViaApi(mappingProfile); // create Action profile and link it to Field mapping profile diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-subfield0.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-subfield0.cy.js index ea8f382a2b..7ae0152dfe 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-subfield0.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-controllable-subfield0.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -69,7 +69,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-controlled-and-not-controlled-subfields.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-controlled-and-not-controlled-subfields.cy.js index 0dc807103f..b5f226379b 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-controlled-and-not-controlled-subfields.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-controlled-and-not-controlled-subfields.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -69,7 +69,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-holdings-via-static-value-submatch.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-holdings-via-static-value-submatch.cy.js index 4d054477f8..63addff200 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-holdings-via-static-value-submatch.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-holdings-via-static-value-submatch.cy.js @@ -1,7 +1,7 @@ import { ACTION_NAMES_IN_ACTION_PROFILE, CALL_NUMBER_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, INSTANCE_STATUS_TERM_NAMES, @@ -109,7 +109,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; const holdingsMatchProfile = { @@ -117,7 +117,7 @@ describe('Data Import', () => { incomingStaticValue: 'Main Library (KU/CC/DI/M)', incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingRecordOption: NewMatchProfile.optionsList.holdingsPermLoc, }; const jobProfileForCreate = { diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-linked-marc-bib-record-with-multiple-$0.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-linked-marc-bib-record-with-multiple-$0.cy.js index eabda70a05..d353fef1b1 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-linked-marc-bib-record-with-multiple-$0.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-linked-marc-bib-record-with-multiple-$0.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -114,7 +114,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-marcBib-via-data-import-incoming-bib-has-invalid-005.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-marcBib-via-data-import-incoming-bib-has-invalid-005.cy.js index 67926bd1af..b3ae968612 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-marcBib-via-data-import-incoming-bib-has-invalid-005.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-marcBib-via-data-import-incoming-bib-has-invalid-005.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -63,7 +63,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-marcBib-when-incoming-bib-does-not-have-005-field.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-marcBib-when-incoming-bib-does-not-have-005-field.cy.js index 8dc483ab22..401304b50f 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-marcBib-when-incoming-bib-does-not-have-005-field.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-marcBib-when-incoming-bib-does-not-have-005-field.cy.js @@ -3,7 +3,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -63,7 +63,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-several-linked-controllable-subfield0.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-several-linked-controllable-subfield0.cy.js index 49c7d72071..2e87af9e6c 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-several-linked-controllable-subfield0.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-several-linked-controllable-subfield0.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -68,7 +68,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/update-tag-value-of-linked-marcBib-controlled-by-marcAuth.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/update-tag-value-of-linked-marcBib-controlled-by-marcAuth.cy.js index 78cb0afccc..19bd59359a 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/update-tag-value-of-linked-marcBib-controlled-by-marcAuth.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/update-tag-value-of-linked-marcBib-controlled-by-marcAuth.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, LOCATION_NAMES, RECORD_STATUSES, @@ -108,7 +108,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/importing-marc-bib-files/updates-should-add-035-field.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/updates-should-add-035-field.cy.js index 24f2fd6c97..7b95442f0c 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/updates-should-add-035-field.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/updates-should-add-035-field.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -69,7 +69,7 @@ describe('Data Import', () => { subfield: 'i', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.instanceUuid, }; diff --git a/cypress/e2e/data-import/importing-marc-bib-files/updating-record-via-035-match-without-taking-incorrect-records-into-account.cy.js b/cypress/e2e/data-import/importing-marc-bib-files/updating-record-via-035-match-without-taking-incorrect-records-into-account.cy.js index f880a3925d..325f9a1a03 100644 --- a/cypress/e2e/data-import/importing-marc-bib-files/updating-record-via-035-match-without-taking-incorrect-records-into-account.cy.js +++ b/cypress/e2e/data-import/importing-marc-bib-files/updating-record-via-035-match-without-taking-incorrect-records-into-account.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -63,7 +63,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/log-details/import-holdings-and-instance-using-marc-to-marc-submatch.cy.js b/cypress/e2e/data-import/log-details/import-holdings-and-instance-using-marc-to-marc-submatch.cy.js index d1f21c61e8..fc35c383c5 100644 --- a/cypress/e2e/data-import/log-details/import-holdings-and-instance-using-marc-to-marc-submatch.cy.js +++ b/cypress/e2e/data-import/log-details/import-holdings-and-instance-using-marc-to-marc-submatch.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, INSTANCE_STATUS_TERM_NAMES, @@ -233,7 +233,7 @@ describe('Data Import', () => { incomingStaticValue: 'Electronic Resource', incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.instanceStatusTerm, }, }, @@ -249,7 +249,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }, }, ]; @@ -416,7 +416,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfileForUpdate = { ...NewJobProfile.defaultJobProfile, @@ -583,7 +583,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }, }, { @@ -592,7 +592,7 @@ describe('Data Import', () => { incomingStaticValue: 'Electronic Resource', incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.instanceStatusTerm, }, }, @@ -602,7 +602,7 @@ describe('Data Import', () => { incomingStaticValue: 'Electronic', incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingRecordOption: NewMatchProfile.optionsList.holdingsType, }, }, diff --git a/cypress/e2e/data-import/log-details/import-summary-table-with-create-modify-update-actions.cy.js b/cypress/e2e/data-import/log-details/import-summary-table-with-create-modify-update-actions.cy.js new file mode 100644 index 0000000000..dda25319ae --- /dev/null +++ b/cypress/e2e/data-import/log-details/import-summary-table-with-create-modify-update-actions.cy.js @@ -0,0 +1,493 @@ +import { + ACCEPTED_DATA_TYPE_NAMES, + ACTION_NAMES_IN_ACTION_PROFILE, + CALL_NUMBER_TYPE_NAMES, + EXISTING_RECORD_NAMES, + EXPORT_TRANSFORMATION_NAMES, + FOLIO_RECORD_TYPE, + HOLDINGS_TYPE_NAMES, + INSTANCE_STATUS_TERM_NAMES, + ITEM_STATUS_NAMES, + JOB_STATUS_NAMES, + LOAN_TYPE_NAMES, + LOCATION_NAMES, + MATERIAL_TYPE_NAMES, + RECORD_STATUSES, +} from '../../../support/constants'; +import { Permissions } from '../../../support/dictionary'; +import ExportFile from '../../../support/fragments/data-export/exportFile'; +import ExportJobProfiles from '../../../support/fragments/data-export/exportJobProfile/exportJobProfiles'; +import ExportFieldMappingProfiles from '../../../support/fragments/data-export/exportMappingProfile/exportFieldMappingProfiles'; +import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; +import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; +import DataImport from '../../../support/fragments/data_import/dataImport'; +import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; +import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; +import FileDetails from '../../../support/fragments/data_import/logs/fileDetails'; +import JsonScreenView from '../../../support/fragments/data_import/logs/jsonScreenView'; +import Logs from '../../../support/fragments/data_import/logs/logs'; +import FieldMappingProfiles from '../../../support/fragments/data_import/mapping_profiles/fieldMappingProfiles'; +import NewFieldMappingProfile from '../../../support/fragments/data_import/mapping_profiles/newFieldMappingProfile'; +import HoldingsRecordView from '../../../support/fragments/inventory/holdingsRecordView'; +import InstanceRecordView from '../../../support/fragments/inventory/instanceRecordView'; +import InventoryInstance from '../../../support/fragments/inventory/inventoryInstance'; +import InventoryInstances from '../../../support/fragments/inventory/inventoryInstances'; +import InventorySearchAndFilter from '../../../support/fragments/inventory/inventorySearchAndFilter'; +import ItemRecordView from '../../../support/fragments/inventory/item/itemRecordView'; +import { + ActionProfiles as SettingsActionProfiles, + FieldMappingProfiles as SettingsFieldMappingProfiles, + JobProfiles as SettingsJobProfiles, + MatchProfiles as SettingsMatchProfiles, +} from '../../../support/fragments/settings/dataImport'; +import NewMatchProfile from '../../../support/fragments/settings/dataImport/matchProfiles/newMatchProfile'; +import SettingsMenu from '../../../support/fragments/settingsMenu'; +import TopMenu from '../../../support/fragments/topMenu'; +import Users from '../../../support/fragments/users/users'; +import DateTools from '../../../support/utils/dateTools'; +import FileManager from '../../../support/utils/fileManager'; +import getRandomPostfix from '../../../support/utils/stringTools'; + +describe('Data Import', () => { + describe('Log details', () => { + let user; + let instanceId; + let instanceHrid; + const uniqueSubject = `Test update.${getRandomPostfix()}`; + const filePathForCreate = 'marcBibFileForC430257.mrc'; + const filePathForUpdate = 'marcBibFileForC430257_1.mrc'; + const fileNameForCreate = `C430257 autotestFileForCreate${getRandomPostfix()}.mrc`; + const fileNameForUpdate = `C430257 autotestFileForUpdate${getRandomPostfix()}.mrc`; + const nameForCSVFile = `C430257 autotestFile${getRandomPostfix()}.csv`; + const exportedFileName = `C430257 autotestExportedFileForUpdate${getRandomPostfix()}.mrc`; + // profiles for creating instance, holdings, item + const collectionOfProfilesForCreate = [ + { + mappingProfile: { + name: `C430257 create marcBib mapping profile ${getRandomPostfix()}`, + updatingText: uniqueSubject, + subfield: 'a', + fieldNumber: '650', + indicator2: '4', + }, + actionProfile: { + name: `C430257 autotest marcBib action profile.${getRandomPostfix()}`, + action: 'MODIFY', + folioRecordType: 'MARC_BIBLIOGRAPHIC', + }, + }, + { + mappingProfile: { + name: `C430257 autotest instance mapping profile.${getRandomPostfix()}`, + }, + actionProfile: { + name: `C430257 autotest instance action profile.${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, + }, + { + mappingProfile: { + name: `C430257 autotest holdings mapping profile.${getRandomPostfix()}`, + permanentLocation: LOCATION_NAMES.MAIN_LIBRARY, + pernanentLocationUI: LOCATION_NAMES.MAIN_LIBRARY_UI, + }, + actionProfile: { + name: `C430257 autotest holdings action profile.${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'HOLDINGS', + }, + }, + { + mappingProfile: { + name: `C430257 autotest item mapping profile.${getRandomPostfix()}`, + materialType: 'book', + permanentLoanType: 'Can circulate', + status: 'Available', + }, + actionProfile: { + name: `C430257 autotest item action profile.${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'ITEM', + }, + }, + ]; + const jobProfileForCreate = { + name: `C430257 autotest job profile for create.${getRandomPostfix()}`, + }; + const exportMappingProfile = { + name: `C430257 mapping profile ${getRandomPostfix()}`, + holdingsTransformation: EXPORT_TRANSFORMATION_NAMES.HOLDINGS_HRID, + holdingsMarcField: '901', + subfieldForHoldings: '$h', + itemTransformation: EXPORT_TRANSFORMATION_NAMES.ITEM_HRID, + itemMarcField: '902', + subfieldForItem: '$i', + }; + const jobProfileNameForExport = `C430257 job profile.${getRandomPostfix()}`; + // profiles for updating instance, holdings, item + const collectionOfProfilesForUpdate = [ + { + mappingProfile: { + name: `C430257 update instance mapping profile ${getRandomPostfix()}`, + typeValue: FOLIO_RECORD_TYPE.INSTANCE, + catalogedDate: '###TODAY###', + catalogedDateUi: DateTools.getFormattedDate({ date: new Date() }), + instanceStatusTerm: INSTANCE_STATUS_TERM_NAMES.BATCH_LOADED, + statisticalCode: 'ARL (Collection stats): books - Book, print (books)', + statisticalCodeUI: 'Book, print (books)', + }, + actionProfile: { + name: `C430257 update instance action profile ${getRandomPostfix()}`, + typeValue: FOLIO_RECORD_TYPE.INSTANCE, + action: ACTION_NAMES_IN_ACTION_PROFILE.UPDATE, + }, + }, + { + mappingProfile: { + name: `C430257 update holdings mapping profile ${getRandomPostfix()}`, + typeValue: FOLIO_RECORD_TYPE.HOLDINGS, + holdingsType: HOLDINGS_TYPE_NAMES.ELECTRONIC, + permanentLocation: `"${LOCATION_NAMES.ONLINE}"`, + permanentLocationUI: LOCATION_NAMES.ONLINE_UI, + callNumberType: CALL_NUMBER_TYPE_NAMES.LIBRARY_OF_CONGRESS, + callNumber: '050$a " " 050$b', + }, + actionProfile: { + name: `C430257 update holdings action profile ${getRandomPostfix()}`, + typeValue: FOLIO_RECORD_TYPE.HOLDINGS, + action: ACTION_NAMES_IN_ACTION_PROFILE.UPDATE, + }, + }, + { + mappingProfile: { + name: `C430257 update item mapping profile ${getRandomPostfix()}`, + typeValue: FOLIO_RECORD_TYPE.ITEM, + materialType: MATERIAL_TYPE_NAMES.ELECTRONIC_RESOURCE, + noteType: '"Electronic bookplate"', + note: '"Smith Family Foundation"', + noteUI: 'Smith Family Foundation', + staffOnly: 'Mark for all affected records', + permanentLoanType: LOAN_TYPE_NAMES.CAN_CIRCULATE, + status: ITEM_STATUS_NAMES.AVAILABLE, + }, + actionProfile: { + name: `C430257 update item action profile ${getRandomPostfix()}`, + typeValue: FOLIO_RECORD_TYPE.ITEM, + action: ACTION_NAMES_IN_ACTION_PROFILE.UPDATE, + }, + }, + ]; + const collectionOfMatchProfiles = [ + { + matchProfile: { + profileName: `C430257 MARC-to-MARC 001 to 001 match profile ${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + }, + existingRecordFields: { + field: '001', + }, + matchCriterion: 'Exactly matches', + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + }, + }, + { + matchProfile: { + profileName: `C430257 MARC-to-Holdings 901h to Holdings HRID match profile ${getRandomPostfix()}`, + incomingRecordFields: { + field: '901', + subfield: 'h', + }, + matchCriterion: 'Exactly matches', + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, + holdingsOption: NewMatchProfile.optionsList.holdingsHrid, + }, + }, + { + matchProfile: { + profileName: `C430257 MARC-to-Item 902i to Item HRID match profile ${getRandomPostfix()}`, + incomingRecordFields: { + field: '902', + subfield: 'i', + }, + matchCriterion: 'Exactly matches', + existingRecordType: EXISTING_RECORD_NAMES.ITEM, + itemOption: NewMatchProfile.optionsList.itemHrid, + }, + }, + ]; + const jobProfileForUpdate = { + ...NewJobProfile.defaultJobProfile, + profileName: `C430257 autotest job profile for update.${getRandomPostfix()}`, + acceptedType: ACCEPTED_DATA_TYPE_NAMES.MARC, + }; + + before('Create test user and login', () => { + cy.getAdminToken(); + NewFieldMappingProfile.createModifyMarcBibMappingProfileViaApi( + collectionOfProfilesForCreate[0].mappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + collectionOfProfilesForCreate[0].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + collectionOfProfilesForCreate[0].actionProfile.id = actionProfileResponse.body.id; + }); + }); + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + collectionOfProfilesForCreate[1].mappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + collectionOfProfilesForCreate[1].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + collectionOfProfilesForCreate[1].actionProfile.id = actionProfileResponse.body.id; + }); + }); + NewFieldMappingProfile.createHoldingsMappingProfileViaApi( + collectionOfProfilesForCreate[2].mappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + collectionOfProfilesForCreate[2].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + collectionOfProfilesForCreate[2].actionProfile.id = actionProfileResponse.body.id; + }); + }); + NewFieldMappingProfile.createItemMappingProfileViaApi( + collectionOfProfilesForCreate[3].mappingProfile, + ) + .then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + collectionOfProfilesForCreate[3].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + collectionOfProfilesForCreate[3].actionProfile.id = actionProfileResponse.body.id; + }); + }) + .then(() => { + NewJobProfile.createJobProfileWithLinkedFourActionProfilesViaApi( + jobProfileForCreate, + collectionOfProfilesForCreate[0].actionProfile.id, + collectionOfProfilesForCreate[1].actionProfile.id, + collectionOfProfilesForCreate[2].actionProfile.id, + collectionOfProfilesForCreate[3].actionProfile.id, + ); + }); + DataImport.uploadFileViaApi( + filePathForCreate, + fileNameForCreate, + jobProfileForCreate.name, + ).then((response) => { + instanceId = response[0].instance.id; + instanceHrid = response[0].instance.hrid; + }); + + cy.createTempUser([ + Permissions.moduleDataImportEnabled.gui, + Permissions.settingsDataImportEnabled.gui, + Permissions.inventoryAll.gui, + Permissions.uiInventoryViewCreateEditInstances.gui, + Permissions.dataExportEnableApp.gui, + Permissions.dataExportEnableSettings.gui, + ]).then((userProperties) => { + user = userProperties; + + cy.login(userProperties.username, userProperties.password); + }); + }); + + after('Delete test data', () => { + // delete created files in fixtures + FileManager.deleteFile(`cypress/fixtures/${fileNameForUpdate}`); + FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); + cy.getAdminToken().then(() => { + Users.deleteViaApi(user.userId); + SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForCreate.profile.name); + SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForUpdate.profileName); + collectionOfMatchProfiles.forEach((profile) => { + SettingsMatchProfiles.deleteMatchProfileByNameViaApi(profile.matchProfile.profileName); + }); + collectionOfProfilesForUpdate.forEach((profile) => { + SettingsActionProfiles.deleteActionProfileByNameViaApi(profile.actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( + profile.mappingProfile.name, + ); + }); + collectionOfProfilesForCreate.forEach((profile) => { + SettingsActionProfiles.deleteActionProfileByNameViaApi(profile.actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( + profile.mappingProfile.name, + ); + }); + cy.getInstance({ limit: 1, expandAll: true, query: `"hrid"=="${instanceHrid}"` }).then( + (instance) => { + cy.deleteItemViaApi(instance.items[0].id); + cy.deleteHoldingRecordViaApi(instance.holdings[0].id); + InventoryInstance.deleteInstanceViaApi(instance.id); + }, + ); + }); + }); + + it( + 'C430257 Check import summary table with "create + update" actions (folijet)', + { tags: ['criticalPath', 'folijet'] }, + () => { + cy.visit(TopMenu.inventoryPath); + InventoryInstances.searchByTitle(instanceId); + InstanceRecordView.verifyInstanceSource('MARC'); + InstanceRecordView.openHoldingView(); + HoldingsRecordView.waitLoading(); + HoldingsRecordView.close(); + InventoryInstance.openHoldingsAccordion( + `${collectionOfProfilesForCreate[2].mappingProfile.pernanentLocationUI} >`, + ); + InventoryInstance.openItemByBarcode('No barcode'); + + cy.visit(SettingsMenu.exportMappingProfilePath); + ExportFieldMappingProfiles.createMappingProfile(exportMappingProfile); + + cy.visit(SettingsMenu.exportJobProfilePath); + ExportJobProfiles.createJobProfile(jobProfileNameForExport, exportMappingProfile.name); + + // download .csv file + cy.visit(TopMenu.inventoryPath); + InventorySearchAndFilter.searchByParameter('Subject', uniqueSubject); + InventorySearchAndFilter.saveUUIDs(); + ExportFile.downloadCSVFile(nameForCSVFile, 'SearchInstanceUUIDs*'); + + // download exported marc file + cy.visit(TopMenu.dataExportPath); + ExportFile.uploadFile(nameForCSVFile); + ExportFile.exportWithCreatedJobProfile(nameForCSVFile, jobProfileNameForExport); + ExportFile.downloadExportedMarcFile(exportedFileName); + + // edit marc file to add one record + DataImport.editMarcFileAddNewRecords( + exportedFileName, + fileNameForUpdate, + filePathForUpdate, + ); + + // create mapping profiles + cy.visit(SettingsMenu.mappingProfilePath); + FieldMappingProfiles.createInstanceMappingProfile( + collectionOfProfilesForUpdate[0].mappingProfile, + ); + + FieldMappingProfiles.createHoldingsMappingProfile( + collectionOfProfilesForUpdate[1].mappingProfile, + ); + + FieldMappingProfiles.createItemMappingProfile( + collectionOfProfilesForUpdate[2].mappingProfile, + ); + + // create action profiles + collectionOfProfilesForUpdate.forEach((profile) => { + cy.visit(SettingsMenu.actionProfilePath); + ActionProfiles.create(profile.actionProfile, profile.mappingProfile.name); + }); + + // create match profiles + cy.visit(SettingsMenu.matchProfilePath); + collectionOfMatchProfiles.forEach((profile) => { + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi( + profile.matchProfile, + ); + }); + + // create job profile + cy.visit(SettingsMenu.jobProfilePath); + JobProfiles.createJobProfileWithLinkingProfilesForUpdate(jobProfileForUpdate); + NewJobProfile.linkMatchAndActionProfiles( + collectionOfMatchProfiles[0].matchProfile.profileName, + collectionOfProfilesForUpdate[0].actionProfile.name, + ); + NewJobProfile.linkActionProfileForNonMatches( + collectionOfProfilesForCreate[1].actionProfile.name, + ); + NewJobProfile.linkMatchAndActionProfiles( + collectionOfMatchProfiles[1].matchProfile.profileName, + collectionOfProfilesForUpdate[1].actionProfile.name, + 2, + ); + NewJobProfile.linkActionProfileForNonMatches( + collectionOfProfilesForCreate[2].actionProfile.name, + 3, + ); + NewJobProfile.linkMatchAndActionProfiles( + collectionOfMatchProfiles[2].matchProfile.profileName, + collectionOfProfilesForUpdate[2].actionProfile.name, + 4, + ); + NewJobProfile.linkActionProfileForNonMatches( + collectionOfProfilesForCreate[3].actionProfile.name, + 5, + ); + NewJobProfile.saveAndClose(); + + // upload the exported marc file + cy.visit(TopMenu.dataImportPath); + DataImport.verifyUploadState(); + DataImport.uploadExportedFile(fileNameForUpdate); + JobProfiles.search(jobProfileForUpdate.profileName); + JobProfiles.runImportFile(); + Logs.waitFileIsImported(fileNameForUpdate); + Logs.checkStatusOfJobProfile(JOB_STATUS_NAMES.COMPLETED); + Logs.openFileDetails(fileNameForUpdate); + FileDetails.checkItemsQuantityInSummaryTable(0, '1'); + FileDetails.checkItemsQuantityInSummaryTable(1, '1'); + FileDetails.checkItemsStatusesInResultList(0, [ + RECORD_STATUSES.UPDATED, + RECORD_STATUSES.UPDATED, + RECORD_STATUSES.UPDATED, + RECORD_STATUSES.UPDATED, + ]); + FileDetails.checkItemsStatusesInResultList(1, [ + RECORD_STATUSES.CREATED, + RECORD_STATUSES.CREATED, + RECORD_STATUSES.CREATED, + RECORD_STATUSES.CREATED, + ]); + FileDetails.openJsonScreen('The Journal of ecclesiastical history.'); + JsonScreenView.verifyJsonScreenIsOpened(); + JsonScreenView.verifyTabsPresented(); + JsonScreenView.verifyContentInTab('The Journal of ecclesiastical history.'); + JsonScreenView.openMarcSrsTab(); + JsonScreenView.verifyContentInTab('"999"'); + + cy.visit(TopMenu.dataImportPath); + Logs.openFileDetails(fileNameForUpdate); + FileDetails.openInstanceInInventory(RECORD_STATUSES.UPDATED); + InstanceRecordView.verifyCatalogedDate( + collectionOfProfilesForUpdate[0].mappingProfile.catalogedDateUi, + ); + InstanceRecordView.verifyInstanceStatusTerm( + collectionOfProfilesForUpdate[0].mappingProfile.instanceStatusTerm, + ); + InstanceRecordView.verifyStatisticalCode( + collectionOfProfilesForUpdate[0].mappingProfile.statisticalCodeUI, + ); + InstanceRecordView.openHoldingView(); + HoldingsRecordView.waitLoading(); + HoldingsRecordView.checkPermanentLocation( + collectionOfProfilesForUpdate[1].mappingProfile.permanentLocationUI, + ); + HoldingsRecordView.checkCallNumberType( + collectionOfProfilesForUpdate[1].mappingProfile.callNumberType, + ); + HoldingsRecordView.close(); + InventoryInstance.openHoldingsAccordion( + `${collectionOfProfilesForUpdate[1].mappingProfile.permanentLocationUI} >`, + ); + InventoryInstance.openItemByBarcode('No barcode'); + ItemRecordView.checkElectronicBookplateNote( + collectionOfProfilesForUpdate[2].mappingProfile.noteUI, + ); + }, + ); + }); +}); diff --git a/cypress/e2e/data-import/log-details/import-summary-table-with-create-update-actions.cy.js b/cypress/e2e/data-import/log-details/import-summary-table-with-create-update-actions.cy.js index 03e4de1ce0..00a0fcf062 100644 --- a/cypress/e2e/data-import/log-details/import-summary-table-with-create-update-actions.cy.js +++ b/cypress/e2e/data-import/log-details/import-summary-table-with-create-update-actions.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, CALL_NUMBER_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, EXPORT_TRANSFORMATION_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, @@ -198,7 +198,7 @@ describe('Data Import', () => { in2: '', subfield: '', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }, }, { @@ -210,8 +210,8 @@ describe('Data Import', () => { in2: '', subfield: 'h', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingMatchExpressionValue: 'holdingsrecord.hrid', }, }, @@ -224,8 +224,8 @@ describe('Data Import', () => { in2: '', subfield: 'i', }, - recordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, existingMatchExpressionValue: 'item.hrid', }, }, diff --git a/cypress/e2e/data-import/log-details/import-summary-table-with-updated-actions-for-instance-holding-and-item.cy.js b/cypress/e2e/data-import/log-details/import-summary-table-with-updated-actions-for-instance-holding-and-item.cy.js index b4449f31c0..e33c813ff4 100644 --- a/cypress/e2e/data-import/log-details/import-summary-table-with-updated-actions-for-instance-holding-and-item.cy.js +++ b/cypress/e2e/data-import/log-details/import-summary-table-with-updated-actions-for-instance-holding-and-item.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, CALL_NUMBER_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, EXPORT_TRANSFORMATION_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, @@ -12,13 +12,13 @@ import { LOAN_TYPE_NAMES, LOCATION_NAMES, MATERIAL_TYPE_NAMES, - PROFILE_TYPE_NAMES, RECORD_STATUSES, } from '../../../support/constants'; import ExportFile from '../../../support/fragments/data-export/exportFile'; import ExportJobProfiles from '../../../support/fragments/data-export/exportJobProfile/exportJobProfiles'; import ExportFieldMappingProfiles from '../../../support/fragments/data-export/exportMappingProfile/exportFieldMappingProfiles'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; +import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; import DataImport from '../../../support/fragments/data_import/dataImport'; import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; @@ -26,6 +26,7 @@ import FileDetails from '../../../support/fragments/data_import/logs/fileDetails import JsonScreenView from '../../../support/fragments/data_import/logs/jsonScreenView'; import Logs from '../../../support/fragments/data_import/logs/logs'; import FieldMappingProfiles from '../../../support/fragments/data_import/mapping_profiles/fieldMappingProfiles'; +import NewFieldMappingProfile from '../../../support/fragments/data_import/mapping_profiles/newFieldMappingProfile'; import HoldingsRecordView from '../../../support/fragments/inventory/holdingsRecordView'; import InstanceRecordView from '../../../support/fragments/inventory/instanceRecordView'; import InventoryInstance from '../../../support/fragments/inventory/inventoryInstance'; @@ -55,168 +56,59 @@ describe('Data Import', () => { const nameForCSVFile = `C430253 autotestFile${getRandomPostfix()}.csv`; const nameMarcFileForImportUpdate = `C430253 autotestExportedFile${getRandomPostfix()}.mrc`; // profiles for creating instance, holdings, item - const marcBibMappingProfile = { - profile: { - id: '', - name: `C430253 marcBib mapping profile${getRandomPostfix()}`, - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, - mappingDetails: { - name: 'marcBib', - recordType: 'MARC_BIBLIOGRAPHIC', - marcMappingDetails: [ - { - order: 0, - action: 'ADD', - field: { - field: '650', - indicator2: '4', - subfields: [ - { - subfield: 'a', - data: { - text: subject, - }, - }, - ], - }, - }, - ], - marcMappingOption: 'MODIFY', + const collectionOfProfilesForCreate = [ + { + mappingProfile: { + name: `C430253 marcBib mapping profile${getRandomPostfix()}`, + updatingText: subject, + subfield: 'a', + fieldNumber: '650', + indicator2: '4', }, - }, - }; - const instanceMappingProfile = { - profile: { - id: '', - name: `C430253 instance mapping profile${getRandomPostfix()}`, - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, - }, - }; - const holdingsMappingProfile = { - profile: { - id: '', - name: `C430253 holdings mapping profile${getRandomPostfix()}`, - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, - mappingDetails: { - name: 'holdings', - recordType: 'HOLDINGS', - mappingFields: [ - { - name: 'permanentLocationId', - enabled: true, - path: 'holdings.permanentLocationId', - value: '"Annex (KU/CC/DI/A)"', - }, - ], + actionProfile: { + name: `C430253 marcBib action profile${getRandomPostfix()}`, + action: 'MODIFY', + folioRecordType: 'MARC_BIBLIOGRAPHIC', }, }, - }; - const itemMappingProfile = { - profile: { - id: '', - name: `C430253 item mapping profile${getRandomPostfix()}`, - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, - mappingDetails: { - name: 'item', - recordType: 'ITEM', - mappingFields: [ - { - name: 'materialType.id', - enabled: true, - path: 'item.materialType.id', - value: '"book"', - acceptedValues: { '1a54b431-2e4f-452d-9cae-9cee66c9a892': 'book' }, - }, - { - name: 'permanentLoanType.id', - enabled: true, - path: 'item.permanentLoanType.id', - value: '"Can circulate"', - acceptedValues: { '2b94c631-fca9-4892-a730-03ee529ffe27': 'Can circulate' }, - }, - { name: 'status.name', enabled: true, path: 'item.status.name', value: '"In process"' }, - ], + { + mappingProfile: { + name: `C430253 instance mapping profile${getRandomPostfix()}`, }, - }, - }; - const marcBibActionProfile = { - profile: { - id: '', - name: `C430253 marcBib action profile${getRandomPostfix()}`, - action: 'MODIFY', - folioRecord: 'MARC_BIBLIOGRAPHIC', - }, - addedRelations: [ - { - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + actionProfile: { + name: `C430253 instance action profile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', }, - ], - deletedRelations: [], - }; - const instanceActionProfile = { - profile: { - id: '', - name: `C430253 instance action profile${getRandomPostfix()}`, - action: 'CREATE', - folioRecord: 'INSTANCE', }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + { + mappingProfile: { + name: `C430253 holdings mapping profile${getRandomPostfix()}`, + permanentLocation: LOCATION_NAMES.ANNEX, + pernanentLocationUI: LOCATION_NAMES.ANNEX_UI, }, - ], - deletedRelations: [], - }; - const holdingsActionProfile = { - profile: { - id: '', - name: `C430253 holdings action profile${getRandomPostfix()}`, - action: 'CREATE', - folioRecord: 'HOLDINGS', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + actionProfile: { + name: `C430253 holdings action profile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'HOLDINGS', }, - ], - deletedRelations: [], - }; - const itemActionProfile = { - profile: { - id: '', - name: `C430253 item action profile${getRandomPostfix()}`, - action: 'CREATE', - folioRecord: 'ITEM', }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + { + mappingProfile: { + name: `C430253 item mapping profile${getRandomPostfix()}`, + materialType: 'book', + permanentLoanType: 'Can circulate', + status: 'Available', + }, + actionProfile: { + name: `C430253 item action profile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'ITEM', }, - ], - deletedRelations: [], - }; - const jobProfileForCreate = { - profile: { - name: `C430253 create job profile ${getRandomPostfix()}`, - dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, }, - addedRelations: [], - deletedRelations: [], + ]; + const jobProfileForCreate = { + name: `C430253 create job profile ${getRandomPostfix()}`, }; const exportMappingProfile = { name: `C430253 mapping profile ${getRandomPostfix()}`, @@ -294,7 +186,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }, }, { @@ -305,7 +197,7 @@ describe('Data Import', () => { subfield: 'h', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsHrid, }, }, @@ -317,7 +209,7 @@ describe('Data Import', () => { subfield: 'i', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.itemHrid, }, }, @@ -329,6 +221,58 @@ describe('Data Import', () => { }; before('Login', () => { + cy.getAdminToken(); + NewFieldMappingProfile.createModifyMarcBibMappingProfileViaApi( + collectionOfProfilesForCreate[0].mappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + collectionOfProfilesForCreate[0].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + collectionOfProfilesForCreate[0].actionProfile.id = actionProfileResponse.body.id; + }); + }); + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + collectionOfProfilesForCreate[1].mappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + collectionOfProfilesForCreate[1].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + collectionOfProfilesForCreate[1].actionProfile.id = actionProfileResponse.body.id; + }); + }); + NewFieldMappingProfile.createHoldingsMappingProfileViaApi( + collectionOfProfilesForCreate[2].mappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + collectionOfProfilesForCreate[2].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + collectionOfProfilesForCreate[2].actionProfile.id = actionProfileResponse.body.id; + }); + }); + NewFieldMappingProfile.createItemMappingProfileViaApi( + collectionOfProfilesForCreate[3].mappingProfile, + ) + .then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + collectionOfProfilesForCreate[3].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + collectionOfProfilesForCreate[3].actionProfile.id = actionProfileResponse.body.id; + }); + }) + .then(() => { + NewJobProfile.createJobProfileWithLinkedFourActionProfilesViaApi( + jobProfileForCreate, + collectionOfProfilesForCreate[0].actionProfile.id, + collectionOfProfilesForCreate[1].actionProfile.id, + collectionOfProfilesForCreate[2].actionProfile.id, + collectionOfProfilesForCreate[3].actionProfile.id, + ); + }); + cy.loginAsAdmin({ path: TopMenu.dataImportPath, waiter: DataImport.waitLoading }); }); @@ -348,22 +292,12 @@ describe('Data Import', () => { profile.mappingProfile.name, ); }); - SettingsActionProfiles.deleteActionProfileByNameViaApi(marcBibActionProfile.profile.name); - SettingsActionProfiles.deleteActionProfileByNameViaApi(instanceActionProfile.profile.name); - SettingsActionProfiles.deleteActionProfileByNameViaApi(holdingsActionProfile.profile.name); - SettingsActionProfiles.deleteActionProfileByNameViaApi(itemActionProfile.profile.name); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - marcBibMappingProfile.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - instanceMappingProfile.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - holdingsMappingProfile.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - itemMappingProfile.profile.name, - ); + collectionOfProfilesForCreate.forEach((profile) => { + SettingsActionProfiles.deleteActionProfileByNameViaApi(profile.actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( + profile.mappingProfile.name, + ); + }); cy.getInstance({ limit: 1, expandAll: true, query: `"hrid"=="${instanceHrid}"` }).then( (instance) => { cy.deleteItemViaApi(instance.items[0].id); @@ -390,33 +324,11 @@ describe('Data Import', () => { error: '9', }; - const testData = [ - { mappingProfile: marcBibMappingProfile, actionProfile: marcBibActionProfile }, - { mappingProfile: instanceMappingProfile, actionProfile: instanceActionProfile }, - { mappingProfile: holdingsMappingProfile, actionProfile: holdingsActionProfile }, - { mappingProfile: itemMappingProfile, actionProfile: itemActionProfile }, - ]; - testData.jobProfileForCreate = jobProfileForCreate; - - testData.forEach((specialPair) => { - cy.createOnePairMappingAndActionProfiles( - specialPair.mappingProfile, - specialPair.actionProfile, - ).then((idActionProfile) => { - cy.addJobProfileRelation(testData.jobProfileForCreate.addedRelations, idActionProfile); - }); - }); - SettingsJobProfiles.createJobProfileViaApi(testData.jobProfileForCreate).then( - (bodyWithjobProfile) => { - testData.jobProfileForCreate.id = bodyWithjobProfile.body.id; - }, - ); - // upload a marc file for creating of the new instance, holding and item DataImport.verifyUploadState(); DataImport.uploadFile(filePath, nameMarcFileForImportCreate); JobProfiles.waitFileIsUploaded(); - JobProfiles.search(testData.jobProfileForCreate.profile.name); + JobProfiles.search(jobProfileForCreate.profile.name); JobProfiles.runImportFile(); Logs.waitFileIsImported(nameMarcFileForImportCreate); Logs.checkJobStatus(nameMarcFileForImportCreate, JOB_STATUS_NAMES.COMPLETED); diff --git a/cypress/e2e/data-import/log-details/import-summury-table-for-updating-actions.cy.js b/cypress/e2e/data-import/log-details/import-summury-table-for-updating-actions.cy.js index 5994645b0d..d7fd02ecdc 100644 --- a/cypress/e2e/data-import/log-details/import-summury-table-for-updating-actions.cy.js +++ b/cypress/e2e/data-import/log-details/import-summury-table-for-updating-actions.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, CALL_NUMBER_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, EXPORT_TRANSFORMATION_NAMES, FOLIO_RECORD_TYPE, HOLDINGS_TYPE_NAMES, @@ -12,13 +12,13 @@ import { LOAN_TYPE_NAMES, LOCATION_NAMES, MATERIAL_TYPE_NAMES, - PROFILE_TYPE_NAMES, RECORD_STATUSES, } from '../../../support/constants'; import ExportFile from '../../../support/fragments/data-export/exportFile'; import ExportJobProfiles from '../../../support/fragments/data-export/exportJobProfile/exportJobProfiles'; import ExportFieldMappingProfiles from '../../../support/fragments/data-export/exportMappingProfile/exportFieldMappingProfiles'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; +import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; import DataImport from '../../../support/fragments/data_import/dataImport'; import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; @@ -48,10 +48,9 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('Log details', () => { - let instanceHrid; - const recordType = 'MARC_BIBLIOGRAPHIC'; - const holdingsPermanentLocation = 'Annex'; - const itemStatus = ITEM_STATUS_NAMES.AVAILABLE; + let instanceHrid = null; + const mappingProfileIds = []; + const actionProfileIds = []; const quantityOfItems = '1'; const instanceTitle = 'Anglo-Saxon manuscripts in microfiche facsimile Volume 25 Corpus Christi College, Cambridge II, MSS 12, 144, 162, 178, 188, 198, 265, 285, 322, 326, 449 microform A. N. Doane (editor and director), Matthew T. Hussey (associate editor), Phillip Pulsiano (founding editor)'; @@ -62,184 +61,58 @@ describe('Data Import', () => { const jobProfileNameForExport = `C356802 job profile.${getRandomPostfix()}`; // profiles for creating instance, holdings, item const marcBibMappingProfileForCreate = { - profile: { - id: '', - name: `C356802 create marcBib mapping profile ${getRandomPostfix()}`, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, - mappingDetails: { - name: 'holdings', - recordType: 'MARC_BIBLIOGRAPHIC', - marcMappingDetails: [ - { - order: 0, - action: 'ADD', - field: { - field: '650', - indicator2: '4', - subfields: [ - { - subfield: 'a', - data: { - text: 'Test update', - }, - }, - ], - }, - }, - ], - marcMappingOption: 'MODIFY', - }, - }, + name: `C356802 create marcBib mapping profile ${getRandomPostfix()}`, + updatingText: `Test update ${getRandomPostfix()}`, + subfield: 'a', + fieldNumber: '650', + indicator2: '4', }; const instanceMappingProfileForCreate = { - profile: { - id: '', - name: `C356802 create instance mapping profile ${getRandomPostfix()}`, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, - }, + name: `C356802 create instance mapping profile ${getRandomPostfix()}`, }; const holdingsMappingProfileForCreate = { - profile: { - id: '', - name: `C356802 create holdings mapping profile ${getRandomPostfix()}`, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, - mappingDetails: { - name: 'holdings', - recordType: 'HOLDINGS', - mappingFields: [ - { - name: 'permanentLocationId', - enabled: true, - path: 'holdings.permanentLocationId', - value: '"Annex (KU/CC/DI/A)"', - }, - ], - }, - }, + name: `C356802 create holdings mapping profile ${getRandomPostfix()}`, + permanentLocation: 'Main Library (KU/CC/DI/M)', }; const itemMappingProfileForCreate = { - profile: { - id: '', - name: `C356802 create item mapping profile ${getRandomPostfix()}`, - incomingRecordType: recordType, - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, - mappingDetails: { - name: 'item', - recordType: 'ITEM', - mappingFields: [ - { - name: 'materialType.id', - enabled: true, - path: 'item.materialType.id', - value: '"book"', - acceptedValues: { '1a54b431-2e4f-452d-9cae-9cee66c9a892': 'book' }, - }, - { - name: 'permanentLoanType.id', - enabled: true, - path: 'item.permanentLoanType.id', - value: '"Can circulate"', - acceptedValues: { '2b94c631-fca9-4892-a730-03ee529ffe27': 'Can circulate' }, - }, - { name: 'status.name', enabled: true, path: 'item.status.name', value: '"Available"' }, - ], - }, - }, - }; - const marcBibActionProfileForCreate = { - profile: { - id: '', - name: `C356802 create marcBib action profile ${getRandomPostfix()}`, - action: 'MODIFY', - folioRecord: recordType, - }, - addedRelations: [ - { - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }; - const instanceActionProfileForCreate = { - profile: { - id: '', - name: `C356802 create instance action profile ${getRandomPostfix()}`, - action: 'CREATE', - folioRecord: 'INSTANCE', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], + name: `C356802 create item mapping profile ${getRandomPostfix()}`, + materialType: 'book', + permanentLoanType: 'Can circulate', + status: 'Available', }; - const holdingsActionProfileForCreate = { - profile: { - id: '', - name: `C356802 create holdings action profile ${getRandomPostfix()}`, - action: 'CREATE', - folioRecord: 'HOLDINGS', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }; - const itemActionProfileForCreate = { - profile: { - id: '', - name: `C356802 create item action profile ${getRandomPostfix()}`, - action: 'CREATE', - folioRecord: 'ITEM', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, + const actionProfilesForCreate = [ + { + actionProfile: { + name: `C356802 create marcBib action profile ${getRandomPostfix()}`, + action: 'MODIFY', + folioRecordType: 'MARC_BIBLIOGRAPHIC', }, - ], - deletedRelations: [], - }; - const jobProfileForCreate = { - profile: { - name: `C356802 create job profile ${getRandomPostfix()}`, - dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, }, - addedRelations: [], - deletedRelations: [], - }; - // TODO redesine classes inherites - const testData = [ { - mappingProfile: marcBibMappingProfileForCreate, - actionProfile: marcBibActionProfileForCreate, + actionProfile: { + name: `C356802 create instance action profile ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, }, { - mappingProfile: instanceMappingProfileForCreate, - actionProfile: instanceActionProfileForCreate, + actionProfile: { + name: `C356802 create holdings action profile ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'HOLDINGS', + }, }, { - mappingProfile: holdingsMappingProfileForCreate, - actionProfile: holdingsActionProfileForCreate, + actionProfile: { + name: `C356802 create item action profile ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'ITEM', + }, }, - { mappingProfile: itemMappingProfileForCreate, actionProfile: itemActionProfileForCreate }, ]; + const jobProfileForCreate = { + name: `C356802 create job profile ${getRandomPostfix()}`, + }; // create Field mapping profile for export const exportMappingProfile = { name: `C356802 mapping profile ${getRandomPostfix()}`, @@ -316,7 +189,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }, }, { @@ -327,7 +200,7 @@ describe('Data Import', () => { subfield: 'h', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsHrid, }, }, @@ -339,7 +212,7 @@ describe('Data Import', () => { subfield: 'i', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.itemHrid, }, }, @@ -362,35 +235,17 @@ describe('Data Import', () => { FileManager.deleteFile(`cypress/fixtures/${nameMarcFileForImportUpdate}`); FileManager.deleteFile(`cypress/fixtures/${nameForCSVFile}`); cy.getAdminToken().then(() => { - SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForCreate.profile.name); + SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForCreate.name); SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileForUpdate.profileName); collectionOfMatchProfiles.forEach((profile) => { SettingsMatchProfiles.deleteMatchProfileByNameViaApi(profile.matchProfile.profileName); }); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - marcBibActionProfileForCreate.profile.name, - ); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - instanceActionProfileForCreate.profile.name, - ); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - holdingsActionProfileForCreate.profile.name, - ); - SettingsActionProfiles.deleteActionProfileByNameViaApi( - itemActionProfileForCreate.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - marcBibMappingProfileForCreate.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - instanceMappingProfileForCreate.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - holdingsMappingProfileForCreate.profile.name, - ); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( - itemMappingProfileForCreate.profile.name, - ); + actionProfileIds.forEach((id) => { + SettingsActionProfiles.deleteActionProfileViaApi(id); + }); + mappingProfileIds.forEach((id) => { + SettingsFieldMappingProfiles.deleteMappingProfileViaApi(id); + }); collectionOfMappingAndActionProfiles.forEach((profile) => { SettingsActionProfiles.deleteActionProfileByNameViaApi(profile.actionProfile.name); SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( @@ -411,30 +266,69 @@ describe('Data Import', () => { 'C356802 Check import summary table with "Updated" actions for instance, holding and item (folijet)', { tags: ['criticalPath', 'folijet'] }, () => { - // create profiles via API - cy.getAdminToken(); - testData.jobProfileForCreate = jobProfileForCreate; + NewFieldMappingProfile.createModifyMarcBibMappingProfileViaApi( + marcBibMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); - testData.forEach((specialPair) => { - cy.createOnePairMappingAndActionProfiles( - specialPair.mappingProfile, - specialPair.actionProfile, - ).then((idActionProfile) => { - cy.addJobProfileRelation(testData.jobProfileForCreate.addedRelations, idActionProfile); + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[0].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); }); }); - SettingsJobProfiles.createJobProfileViaApi(testData.jobProfileForCreate).then( - (bodyWithjobProfile) => { - testData.jobProfileForCreate.id = bodyWithjobProfile.body.id; - }, - ); + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + instanceMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); + + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[1].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }); + NewFieldMappingProfile.createHoldingsMappingProfileViaApi( + holdingsMappingProfileForCreate, + ).then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); + + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[2].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }); + NewFieldMappingProfile.createItemMappingProfileViaApi(itemMappingProfileForCreate) + .then((mappingProfileResponse) => { + mappingProfileIds.push(mappingProfileResponse.body.id); + + NewActionProfile.createActionProfileViaApi( + actionProfilesForCreate[3].actionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + actionProfileIds.push(actionProfileResponse.body.id); + }); + }) + .then(() => { + NewJobProfile.createJobProfileWithLinkedFourActionProfilesViaApi( + jobProfileForCreate, + actionProfileIds[0], + actionProfileIds[1], + actionProfileIds[2], + actionProfileIds[3], + ); + }); // upload a marc file for creating of the new instance, holding and item cy.visit(TopMenu.dataImportPath); DataImport.verifyUploadState(); DataImport.uploadFile('oneMarcBib.mrc', nameMarcFileForImportCreate); JobProfiles.waitFileIsUploaded(); - JobProfiles.search(testData.jobProfileForCreate.profile.name); + JobProfiles.search(jobProfileForCreate.name); JobProfiles.runImportFile(); Logs.waitFileIsImported(nameMarcFileForImportCreate); Logs.checkStatusOfJobProfile(JOB_STATUS_NAMES.COMPLETED); @@ -447,8 +341,8 @@ describe('Data Import', () => { InventoryInstance.checkIsInstancePresented( instanceTitle, - holdingsPermanentLocation, - itemStatus, + LOCATION_NAMES.MAIN_LIBRARY_UI, + ITEM_STATUS_NAMES.AVAILABLE, ); cy.visit(SettingsMenu.exportMappingProfilePath); diff --git a/cypress/e2e/data-import/log-details/log-summary-counts-for-inventory-records-created-after-not-matching.cy.js b/cypress/e2e/data-import/log-details/log-summary-counts-for-inventory-records-created-after-not-matching.cy.js index 421c5651ce..bd9e025c34 100644 --- a/cypress/e2e/data-import/log-details/log-summary-counts-for-inventory-records-created-after-not-matching.cy.js +++ b/cypress/e2e/data-import/log-details/log-summary-counts-for-inventory-records-created-after-not-matching.cy.js @@ -1,6 +1,6 @@ import { ACCEPTED_DATA_TYPE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, ITEM_STATUS_NAMES, @@ -96,7 +96,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.systemControlNumber, }; const jobProfile = { diff --git a/cypress/e2e/data-import/log-details/number-of-updated-instances-in-log-does-not-exceed-number-of-records-in-file.cy.js b/cypress/e2e/data-import/log-details/number-of-updated-instances-in-log-does-not-exceed-number-of-records-in-file.cy.js index cfa48e724e..e18276fefe 100644 --- a/cypress/e2e/data-import/log-details/number-of-updated-instances-in-log-does-not-exceed-number-of-records-in-file.cy.js +++ b/cypress/e2e/data-import/log-details/number-of-updated-instances-in-log-does-not-exceed-number-of-records-in-file.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, RECORD_STATUSES, } from '../../../support/constants'; @@ -81,7 +81,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, @@ -106,6 +106,8 @@ describe('Data Import', () => { }); after('Delete test data', () => { + // delete created file in fixtures + FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); cy.getAdminToken().then(() => { cy.wrap(fieldProtectionIds).each((id) => { MarcFieldProtection.deleteViaApi(id); @@ -124,8 +126,6 @@ describe('Data Import', () => { }, ); }); - // delete created file in fixtures - FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); }); it( diff --git a/cypress/e2e/data-import/log-details/record-title-is-present-in-log-details-when-job-profile-only-involves-holdings-and-items.cy.js b/cypress/e2e/data-import/log-details/record-title-is-present-in-log-details-when-job-profile-only-involves-holdings-and-items.cy.js index 610c945792..afd620fc4f 100644 --- a/cypress/e2e/data-import/log-details/record-title-is-present-in-log-details-when-job-profile-only-involves-holdings-and-items.cy.js +++ b/cypress/e2e/data-import/log-details/record-title-is-present-in-log-details-when-job-profile-only-involves-holdings-and-items.cy.js @@ -2,7 +2,7 @@ import uuid from 'uuid'; import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, ITEM_STATUS_NAMES, LOCATION_NAMES, @@ -212,7 +212,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }, }, @@ -224,7 +224,7 @@ describe('Data Import', () => { subfield: 'h', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsHrid, }, }, @@ -236,7 +236,7 @@ describe('Data Import', () => { subfield: 'i', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.itemHrid, }, }, @@ -453,7 +453,7 @@ describe('Data Import', () => { subfield: 'h', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, holdingsOption: NewMatchProfile.optionsList.holdingsHrid, }, }, @@ -465,7 +465,7 @@ describe('Data Import', () => { subfield: 'i', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, itemOption: NewMatchProfile.optionsList.itemHrid, }, }, diff --git a/cypress/e2e/data-import/log-details/status-of-instance-is-updated-in-import-log-after-uploading-marc-file-for-modify.cy.js b/cypress/e2e/data-import/log-details/status-of-instance-is-updated-in-import-log-after-uploading-marc-file-for-modify.cy.js index 9a8c89349d..2cac1ec35c 100644 --- a/cypress/e2e/data-import/log-details/status-of-instance-is-updated-in-import-log-after-uploading-marc-file-for-modify.cy.js +++ b/cypress/e2e/data-import/log-details/status-of-instance-is-updated-in-import-log-after-uploading-marc-file-for-modify.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, RECORD_STATUSES, @@ -73,7 +73,7 @@ describe.skip('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const jobProfile = { ...NewJobProfile.defaultJobProfile, diff --git a/cypress/e2e/data-import/log-details/title-appeared-in-log-details-when-instance-is-not-updated-due-to-non-match.cy.js b/cypress/e2e/data-import/log-details/title-appeared-in-log-details-when-instance-is-not-updated-due-to-non-match.cy.js index 822d75f684..dbb87c85f2 100644 --- a/cypress/e2e/data-import/log-details/title-appeared-in-log-details-when-instance-is-not-updated-due-to-non-match.cy.js +++ b/cypress/e2e/data-import/log-details/title-appeared-in-log-details-when-instance-is-not-updated-due-to-non-match.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -48,7 +48,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; const mappingProfile = { diff --git a/cypress/e2e/data-import/log-details/updated-error-message-for-multiple-match-on-json-screen-for-instance.cy.js b/cypress/e2e/data-import/log-details/updated-error-message-for-multiple-match-on-json-screen-for-instance.cy.js index dbbcf2c8e6..f9444db326 100644 --- a/cypress/e2e/data-import/log-details/updated-error-message-for-multiple-match-on-json-screen-for-instance.cy.js +++ b/cypress/e2e/data-import/log-details/updated-error-message-for-multiple-match-on-json-screen-for-instance.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, JOB_STATUS_NAMES, } from '../../../support/constants'; @@ -68,7 +68,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.identifierOCLC, }; const collectionOfMappingAndActionProfiles = [ diff --git a/cypress/e2e/data-import/log-details/using-chrome-go-back-button-following-link-holdings-created.cy.js b/cypress/e2e/data-import/log-details/using-chrome-go-back-button-following-link-holdings-created.cy.js index 014053993e..44aa94d136 100644 --- a/cypress/e2e/data-import/log-details/using-chrome-go-back-button-following-link-holdings-created.cy.js +++ b/cypress/e2e/data-import/log-details/using-chrome-go-back-button-following-link-holdings-created.cy.js @@ -65,8 +65,10 @@ describe('Data Import', () => { NewJobProfile.linkActionProfile(actionProfile); NewJobProfile.saveAndClose(); - // upload a marc file for creating of the new instance, holding and item - DataImport.uploadFileViaApi(filePath, fileName, jobProfile.profileName); + // upload a marc file for creating of the new instance, holding + DataImport.uploadFileViaApi(filePath, fileName, jobProfile.profileName).then((response) => { + instanceHrid = response[0].instance.hrid; + }); cy.createTempUser([ Permissions.moduleDataImportEnabled.gui, @@ -110,15 +112,11 @@ describe('Data Import', () => { FileDetails.checkStatusInColumn(RECORD_STATUSES.CREATED, columnName); }); FileDetails.openInstanceInInventory(RECORD_STATUSES.CREATED); - InventoryInstance.getAssignedHRID().then((hrId) => { - instanceHrid = hrId; - - InstanceRecordView.waitLoading(); - InstanceRecordView.verifyInstancePaneExists(); - cy.go('back'); - FileDetails.openHoldingsInInventory(RECORD_STATUSES.CREATED); - HoldingsRecordView.checkHoldingRecordViewOpened(); - }); + InstanceRecordView.waitLoading(); + InstanceRecordView.verifyInstancePaneExists(); + cy.go('back'); + FileDetails.openHoldingsInInventory(RECORD_STATUSES.CREATED); + HoldingsRecordView.checkHoldingRecordViewOpened(); }, ); }); diff --git a/cypress/e2e/data-import/log-details/values-in-job-profile-filter-after-deleting-logs-on-view-all-page.cy.js b/cypress/e2e/data-import/log-details/values-in-job-profile-filter-after-deleting-logs-on-view-all-page.cy.js index a1e8d5137f..2ffb5afd0e 100644 --- a/cypress/e2e/data-import/log-details/values-in-job-profile-filter-after-deleting-logs-on-view-all-page.cy.js +++ b/cypress/e2e/data-import/log-details/values-in-job-profile-filter-after-deleting-logs-on-view-all-page.cy.js @@ -1,3 +1,4 @@ +import { FOLIO_RECORD_TYPE } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; import DataImport from '../../../support/fragments/data_import/dataImport'; @@ -5,6 +6,7 @@ import NewJobProfile from '../../../support/fragments/data_import/job_profiles/n import Logs from '../../../support/fragments/data_import/logs/logs'; import LogsViewAll from '../../../support/fragments/data_import/logs/logsViewAll'; import NewFieldMappingProfile from '../../../support/fragments/data_import/mapping_profiles/newFieldMappingProfile'; +import InventoryInstance from '../../../support/fragments/inventory/inventoryInstance'; import { ActionProfiles as SettingsActionProfiles, FieldMappingProfiles as SettingsFieldMappingProfiles, @@ -17,40 +19,46 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('Log details', () => { - const testData = { - numberOfLogsToDelete: '1', - filePath: 'oneMarcBib.mrc', - fileName: `C358534 autotestFile${getRandomPostfix()}.mrc`, - mappingProfileName: `C358534 instance mapping profile ${getRandomPostfix()}`, - actionProfileName: `C358534 instance action profile ${getRandomPostfix()}`, - jobProfileName: `C358534 job profile ${getRandomPostfix()}`, + let user; + let instanceId; + const numberOfLogsToDelete = '1'; + const filePath = 'oneMarcBib.mrc'; + const fileName = `C358534 autotestFile${getRandomPostfix()}.mrc`; + const mappingProfile = { + name: `C358534 instance mapping profile ${getRandomPostfix()}`, + }; + const actionProfile = { + name: `C358534 instance action profile ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: FOLIO_RECORD_TYPE.INSTANCE, + }; + const jobProfile = { + name: `C358534 job profile ${getRandomPostfix()}`, }; - before('Create test data', () => { + before('create user and login', () => { cy.getAdminToken(); - NewFieldMappingProfile.createMappingProfileViaApi(testData.mappingProfileName).then( + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile).then( (mappingProfileResponse) => { NewActionProfile.createActionProfileViaApi( - testData.actionProfileName, + actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { NewJobProfile.createJobProfileWithLinkedActionProfileViaApi( - testData.jobProfileName, + jobProfile, actionProfileResponse.body.id, ); }); }, ); - DataImport.uploadFileViaApi( - testData.filePath, - testData.fileName, - testData.jobProfileName, - ).then((response) => { - testData.instanceId = response[0].instance.id; + + // upload a marc file for creating of the new instance + DataImport.uploadFileViaApi(filePath, fileName, jobProfile.name).then((response) => { + instanceId = response[0].instance.id; }); cy.createTempUser([Permissions.dataImportDeleteLogs.gui]).then((userProperties) => { - testData.user = userProperties; + user = userProperties; cy.login(userProperties.username, userProperties.password, { path: TopMenu.dataImportPath, @@ -61,11 +69,11 @@ describe('Data Import', () => { after('Delete test data', () => { cy.getAdminToken().then(() => { - SettingsJobProfiles.deleteJobProfileByNameViaApi(testData.jobProfileName); - SettingsActionProfiles.deleteActionProfileByNameViaApi(testData.actionProfileName); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(testData.mappingProfileName); - - Users.deleteViaApi(testData.user.userId); + SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.name); + SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); + Users.deleteViaApi(user.userId); + InventoryInstance.deleteInstanceViaApi(instanceId); }); }); @@ -74,15 +82,15 @@ describe('Data Import', () => { { tags: ['extendedPath', 'folijet'] }, () => { Logs.openViewAllLogs(); - LogsViewAll.filterJobsByJobProfile(testData.jobProfileName); - LogsViewAll.checkByJobProfileName(testData.jobProfileName); + LogsViewAll.filterJobsByJobProfile(jobProfile.name); + LogsViewAll.checkByJobProfileName(jobProfile.name); DataImport.selectAllLogs(); DataImport.openDeleteImportLogsModal(); DataImport.confirmDeleteImportLogs(); InteractorsTools.checkCalloutMessage( - `${testData.numberOfLogsToDelete} data import logs have been successfully deleted.`, + `${numberOfLogsToDelete} data import logs have been successfully deleted.`, ); - LogsViewAll.verifyJobProfileIsAbsntInFilter(testData.jobProfileName); + LogsViewAll.verifyJobProfileIsAbsntInFilter(jobProfile.name); }, ); }); diff --git a/cypress/e2e/data-import/permissions/can-see-json-tab-for-imported-orders-with-data-import-can-upload-files-import-and-view-logs-permission.cy.js b/cypress/e2e/data-import/permissions/can-see-json-tab-for-imported-orders-with-data-import-can-upload-files-import-and-view-logs-permission.cy.js index f8439dc44b..f4307c1f85 100644 --- a/cypress/e2e/data-import/permissions/can-see-json-tab-for-imported-orders-with-data-import-can-upload-files-import-and-view-logs-permission.cy.js +++ b/cypress/e2e/data-import/permissions/can-see-json-tab-for-imported-orders-with-data-import-can-upload-files-import-and-view-logs-permission.cy.js @@ -16,6 +16,7 @@ import FileDetails from '../../../support/fragments/data_import/logs/fileDetails import JsonScreenView from '../../../support/fragments/data_import/logs/jsonScreenView'; import Logs from '../../../support/fragments/data_import/logs/logs'; import FieldMappingProfiles from '../../../support/fragments/data_import/mapping_profiles/fieldMappingProfiles'; +import InventoryInstance from '../../../support/fragments/inventory/inventoryInstance'; import OrderLines from '../../../support/fragments/orders/orderLines'; import { ActionProfiles as SettingsActionProfiles, @@ -30,6 +31,7 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('Permissions', () => { let user; + let instanceId; const filePath = 'marcBibFileForC377023.mrc'; const marcFileName = `C377023 autotestFileName${getRandomPostfix()}.mrc`; const title = 'ROALD DAHL : TELLER OF THE UNEXPECTED : A BIOGRAPHY.'; @@ -107,7 +109,12 @@ describe('Data Import', () => { NewJobProfile.saveAndClose(); JobProfiles.checkJobProfilePresented(jobProfile.profileName); - DataImport.uploadFileViaApi(filePath, marcFileName, jobProfile.profileName); + // upload a marc file for creating of the new instance + DataImport.uploadFileViaApi(filePath, marcFileName, jobProfile.profileName).then( + (response) => { + instanceId = response[0].instance.id; + }, + ); cy.createTempUser([Permissions.moduleDataImportEnabled.gui]).then((userProperties) => { user = userProperties; @@ -125,6 +132,7 @@ describe('Data Import', () => { SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.profileName); SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); + InventoryInstance.deleteInstanceViaApi(instanceId); }); }); diff --git a/cypress/e2e/data-import/permissions/permission-only-viewing-settings.cy.js b/cypress/e2e/data-import/permissions/permission-only-viewing-settings.cy.js index fe6f7444ca..8949169c78 100644 --- a/cypress/e2e/data-import/permissions/permission-only-viewing-settings.cy.js +++ b/cypress/e2e/data-import/permissions/permission-only-viewing-settings.cy.js @@ -1,3 +1,4 @@ +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import ActionProfileView from '../../../support/fragments/data_import/action_profiles/actionProfileView'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; @@ -31,9 +32,24 @@ describe('Data Import', () => { let user; // profile names for creating - const mappingProfileName = `C353645_mapping_profile_${getRandomPostfix()}`; - const actionProfileName = `C353645_action_profile_${getRandomPostfix()}`; - const matchProfileName = `C353645_match_profile_${getRandomPostfix()}`; + const mappingProfile = { name: `C353645_mapping_profile_${getRandomPostfix()}` }; + const actionProfile = { + name: `C353645_action_profile_${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }; + const matchProfile = { + profileName: `C353645_match_profile_${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', + }; const jobProfileName = `C353645_job_profile_${getRandomPostfix()}`; const fileExtensionName = '.dat'; @@ -41,21 +57,21 @@ describe('Data Import', () => { cy.createTempUser([Permissions.settingsDataImportCanViewOnly.gui]).then((userProperties) => { user = userProperties; - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfileName).then( + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile).then( (mappingProfileResponse) => { NewActionProfile.createActionProfileViaApi( - actionProfileName, + actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { - NewMatchProfile.createMatchProfileViaApi(matchProfileName).then( - (matchProfileResponse) => { - NewJobProfile.createJobProfileViaApi( - jobProfileName, - matchProfileResponse.body.id, - actionProfileResponse.body.id, - ); - }, - ); + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi( + matchProfile, + ).then((matchProfileResponse) => { + NewJobProfile.createJobProfileWithLinkedMatchAndActionProfilesViaApi( + jobProfileName, + matchProfileResponse.body.id, + actionProfileResponse.body.id, + ); + }); }); }, ); @@ -70,9 +86,9 @@ describe('Data Import', () => { cy.getAdminToken().then(() => { // delete generated profiles SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileName); - SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfileName); - SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfileName); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfileName); + SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); + SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); Users.deleteViaApi(user.userId); }); }); @@ -92,24 +108,24 @@ describe('Data Import', () => { cy.visit(SettingsMenu.matchProfilePath); MatchProfiles.verifyListOfExistingProfilesIsDisplayed(); MatchProfiles.verifyActionMenuAbsent(); - MatchProfiles.search(matchProfileName); - MatchProfiles.selectMatchProfileFromList(matchProfileName); + MatchProfiles.search(matchProfile.profileName); + MatchProfiles.selectMatchProfileFromList(matchProfile.profileName); MatchProfileView.verifyMatchProfileOpened(); - MatchProfiles.verifyActionMenuAbsent(matchProfileName); + MatchProfiles.verifyActionMenuAbsent(matchProfile.profileName); cy.visit(SettingsMenu.actionProfilePath); ActionProfiles.checkListOfExistingProfilesIsDisplayed(); ActionProfiles.verifyActionMenuAbsent(); - ActionProfiles.search(actionProfileName); - ActionProfiles.selectActionProfileFromList(actionProfileName); + ActionProfiles.search(actionProfile.name); + ActionProfiles.selectActionProfileFromList(actionProfile.name); ActionProfileView.verifyActionProfileOpened(); ActionProfileView.verifyActionMenuAbsent(); cy.visit(SettingsMenu.mappingProfilePath); FieldMappingProfiles.checkListOfExistingProfilesIsDisplayed(); FieldMappingProfiles.verifyActionMenuAbsent(); - FieldMappingProfiles.search(mappingProfileName); - FieldMappingProfiles.selectMappingProfileFromList(mappingProfileName); + FieldMappingProfiles.search(mappingProfile.name); + FieldMappingProfiles.selectMappingProfileFromList(mappingProfile.name); FieldMappingProfileView.verifyMappingProfileOpened(); FieldMappingProfileView.verifyActionMenuAbsent(); diff --git a/cypress/e2e/inventory/cataloging/create-instance-holdings-and-item.cy.js b/cypress/e2e/inventory/cataloging/create-instance-holdings-and-item.cy.js index cdc76c4f72..55f2a69068 100644 --- a/cypress/e2e/inventory/cataloging/create-instance-holdings-and-item.cy.js +++ b/cypress/e2e/inventory/cataloging/create-instance-holdings-and-item.cy.js @@ -14,7 +14,7 @@ describe('Inventory', () => { const testData = { barcode, callNumber: '331.2', - instanceTitle: `autotest_instance_title_${barcode}`, + instanceTitle: `C3505 autotest_instance_title_${barcode}`, user: {}, }; diff --git a/cypress/e2e/inventory/create-edit-delete-material-types.cy.js b/cypress/e2e/inventory/create-edit-delete-material-types.cy.js index 97307b8f12..c07cf25906 100644 --- a/cypress/e2e/inventory/create-edit-delete-material-types.cy.js +++ b/cypress/e2e/inventory/create-edit-delete-material-types.cy.js @@ -7,8 +7,8 @@ import getRandomPostfix from '../../support/utils/stringTools'; describe('Inventory', () => { describe('Permissions', () => { let userId; - const materialTypeName = `autoTestMaterialType.${getRandomPostfix()}`; - const newMaterialTypeName = `autoTestMaterialType.${getRandomPostfix()}`; + const materialTypeName = `C505 autoTestMaterialType.${getRandomPostfix()}`; + const newMaterialTypeName = `C505 autoTestMaterialType.${getRandomPostfix()}`; before('Create test user and login', () => { cy.createTempUser([Permissions.uiCreateEditDeleteMaterialTypes.gui]).then( diff --git a/cypress/e2e/inventory/holdings/create-holdings-as-different-user.cy.js b/cypress/e2e/inventory/holdings/create-holdings-as-different-user.cy.js index d909e2473e..c7c12e12a9 100644 --- a/cypress/e2e/inventory/holdings/create-holdings-as-different-user.cy.js +++ b/cypress/e2e/inventory/holdings/create-holdings-as-different-user.cy.js @@ -28,6 +28,7 @@ describe('Inventory', () => { cy.createTempUser([permissions.inventoryAll.gui]).then((userProperties) => { secondUser = userProperties; + cy.login(secondUser.username, secondUser.password, { path: TopMenu.inventoryPath, waiter: InventoryInstances.waitContentLoading, @@ -59,8 +60,7 @@ describe('Inventory', () => { InventorySearchAndFilter.searchInstanceByTitle(recordsData.instanceTitle); cy.expect(MultiColumnListCell({ row: 0, content: recordsData.instanceTitle }).exists()); - // logout and login as a different user - cy.logout(); + // login as a different user cy.login(firstUser.username, firstUser.password); cy.visit(TopMenu.inventoryPath); diff --git a/cypress/e2e/inventory/instance/assign-preceding-title.cy.js b/cypress/e2e/inventory/instance/assign-preceding-title.cy.js index d81bc92dce..4240bbd140 100644 --- a/cypress/e2e/inventory/instance/assign-preceding-title.cy.js +++ b/cypress/e2e/inventory/instance/assign-preceding-title.cy.js @@ -52,7 +52,7 @@ describe('Inventory', () => { const requestBody = body; requestBody.precedingTitles = []; - // reset precedingTitles to get rid of tables dependencies and be able to delete the instances + // reset precedingTitles to get hrid of tables dependencies and be able to delete the instances cy.updateInstance(requestBody); }) .then(() => { diff --git a/cypress/e2e/inventory/settings/view-mode-of-isri-profiles.cy.js b/cypress/e2e/inventory/settings/view-mode-of-isri-profiles.cy.js index 5ff95f1aed..2712399f0c 100644 --- a/cypress/e2e/inventory/settings/view-mode-of-isri-profiles.cy.js +++ b/cypress/e2e/inventory/settings/view-mode-of-isri-profiles.cy.js @@ -1,3 +1,4 @@ +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; @@ -16,39 +17,115 @@ import getRandomPostfix from '../../../support/utils/stringTools'; const abcProfile = { createJobProfile: `abc createJobProfile.${getRandomPostfix()}`, - createActionProfile: `abc autotest actionProfile${getRandomPostfix()}`, - createMappingProfile: `abc autotest mappingProfile${getRandomPostfix()}`, + createActionProfile: { + name: `abc autotest actionProfile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, + createMappingProfile: { name: `abc autotest mappingProfile${getRandomPostfix()}` }, updateJobProfile: `abc updateJobProfile.${getRandomPostfix()}`, - updateMatchProfile: `abc updateJobProfile.${getRandomPostfix()}`, - updateActionProfile: `abc autotest actionProfile${getRandomPostfix()}`, - updateMappingProfile: `abc autotest mappingProfile${getRandomPostfix()}`, + updateMatchProfile: { + profileName: `abc updateJobProfile.${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', + }, + updateActionProfile: { + name: `abc autotest actionProfile${getRandomPostfix()}`, + action: 'UPDATE', + folioRecordType: 'INSTANCE', + }, + updateMappingProfile: { name: `abc autotest mappingProfile${getRandomPostfix()}` }, }; const adcProfile = { createJobProfile: `adc createJobProfile.${getRandomPostfix()}`, - createActionProfile: `adc autotest actionProfile${getRandomPostfix()}`, - createMappingProfile: `adc autotest mappingProfile${getRandomPostfix()}`, + createActionProfile: { + name: `adc autotest actionProfile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, + createMappingProfile: { name: `adc autotest mappingProfile${getRandomPostfix()}` }, updateJobProfile: `adc updateJobProfile.${getRandomPostfix()}`, - updateMatchProfile: `abc updateJobProfile.${getRandomPostfix()}`, - updateActionProfile: `adc autotest actionProfile${getRandomPostfix()}`, - updateMappingProfile: `adc autotest mappingProfile${getRandomPostfix()}`, + updateMatchProfile: { + profileName: `abc updateJobProfile.${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', + }, + updateActionProfile: { + name: `adc autotest actionProfile${getRandomPostfix()}`, + action: 'UPDATE', + folioRecordType: 'INSTANCE', + }, + updateMappingProfile: { name: `adc autotest mappingProfile${getRandomPostfix()}` }, }; const zbcProfile = { createJobProfile: `zbc createJobProfile.${getRandomPostfix()}`, - createActionProfile: `zbc autotest actionProfile${getRandomPostfix()}`, - createMappingProfile: `zbc autotest mappingProfile${getRandomPostfix()}`, + createActionProfile: { + name: `zbc autotest actionProfile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, + createMappingProfile: { name: `zbc autotest mappingProfile${getRandomPostfix()}` }, updateJobProfile: `zbc updateJobProfile.${getRandomPostfix()}`, - updateMatchProfile: `abc updateJobProfile.${getRandomPostfix()}`, - updateActionProfile: `zbc autotest actionProfile${getRandomPostfix()}`, - updateMappingProfile: `zbc autotest mappingProfile${getRandomPostfix()}`, + updateMatchProfile: { + profileName: `abc updateJobProfile.${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', + }, + updateActionProfile: { + name: `zbc autotest actionProfile${getRandomPostfix()}`, + action: 'UPDATE', + folioRecordType: 'INSTANCE', + }, + updateMappingProfile: { name: `zbc autotest mappingProfile${getRandomPostfix()}` }, }; const zdcProfile = { createJobProfile: `zdc createJobProfile.${getRandomPostfix()}`, - createActionProfile: `zdc autotest actionProfile${getRandomPostfix()}`, - createMappingProfile: `zdc autotest mappingProfile${getRandomPostfix()}`, + createActionProfile: { + name: `zdc autotest actionProfile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, + createMappingProfile: { name: `zdc autotest mappingProfile${getRandomPostfix()}` }, updateJobProfile: `zdc updateJobProfile.${getRandomPostfix()}`, - updateMatchProfile: `abc updateJobProfile.${getRandomPostfix()}`, - updateActionProfile: `zdc autotest actionProfile${getRandomPostfix()}`, - updateMappingProfile: `zdc autotest mappingProfile${getRandomPostfix()}`, + updateMatchProfile: { + profileName: `abc updateJobProfile.${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', + }, + updateActionProfile: { + name: `zdc autotest actionProfile${getRandomPostfix()}`, + action: 'UPDATE', + folioRecordType: 'INSTANCE', + }, + updateMappingProfile: { name: `zdc autotest mappingProfile${getRandomPostfix()}` }, }; describe('Inventory', () => { @@ -64,47 +141,46 @@ describe('Inventory', () => { .then(() => { // create job profiles for create [zbcProfile, adcProfile, zdcProfile, abcProfile].forEach((profile) => { - NewFieldMappingProfile.createMappingProfileViaApi(profile.createMappingProfile).then( - (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApi( - profile.createActionProfile, - mappingProfileResponse.body.id, - ) - .then((actionProfileResponse) => { - NewJobProfile.createJobProfileWithLinkedActionProfileViaApi( - profile.createJobProfile, - actionProfileResponse.body.id, - ); - }) - .then((id) => createJobProfileIds.push(id)); - }, - ); + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + profile.createMappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + profile.createActionProfile, + mappingProfileResponse.body.id, + ) + .then((actionProfileResponse) => { + NewJobProfile.createJobProfileWithLinkedActionProfileViaApi( + profile.createJobProfile, + actionProfileResponse.body.id, + ); + }) + .then((id) => createJobProfileIds.push(id)); + }); }); // create job profile for update [abcProfile, zbcProfile, zdcProfile, adcProfile].forEach((profile) => { - NewFieldMappingProfile.createMappingProfileViaApi(profile.updateMappingProfile).then( - (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApi( - profile.updateActionProfile, - mappingProfileResponse.body.id, - 'UPDATE', - ) - .then((actionProfileResponse) => { - NewMatchProfile.createMatchProfileViaApi(profile.updateMatchProfile).then( - (matchProfileResponse) => { - NewJobProfile.createJobProfileWithLinkedMatchAndActionProfilesViaApi( - profile.updateJobProfile, - matchProfileResponse.body.id, - actionProfileResponse.body.id, - ); - }, + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + profile.updateMappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + profile.updateActionProfile, + mappingProfileResponse.body.id, + ) + .then((actionProfileResponse) => { + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi( + profile.updateMatchProfile, + ).then((matchProfileResponse) => { + NewJobProfile.createJobProfileWithLinkedMatchAndActionProfilesViaApi( + profile.updateJobProfile, + matchProfileResponse.body.id, + actionProfileResponse.body.id, ); - }) - .then((id) => { - updateJobProfileIds.push(id); }); - }, - ); + }) + .then((id) => { + updateJobProfileIds.push(id); + }); + }); }); }) .then(() => { diff --git a/cypress/e2e/inventory/single-record-import/modal-window-for-isri-import-create-for-multiple-target-profiles.cy.js b/cypress/e2e/inventory/single-record-import/modal-window-for-isri-import-create-for-multiple-target-profiles.cy.js index 072a705701..d5393bced2 100644 --- a/cypress/e2e/inventory/single-record-import/modal-window-for-isri-import-create-for-multiple-target-profiles.cy.js +++ b/cypress/e2e/inventory/single-record-import/modal-window-for-isri-import-create-for-multiple-target-profiles.cy.js @@ -26,8 +26,14 @@ describe('Inventory', () => { let instanceHRID; const profile = { createJobProfile: `Inventory Single Record - Default Create Instance.${getRandomPostfix()}`, - createActionProfile: `autotest actionProfileForCreate${getRandomPostfix()}`, - createMappingProfile: `autotest mappingProfileForCreate${getRandomPostfix()}`, + createActionProfile: { + name: `autotest actionProfileForCreate${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, + createMappingProfile: { + name: `autotest mappingProfileForCreate${getRandomPostfix()}`, + }, }; const targetProfileName = `C375122 autotest profile${getRandomPostfix()}`; const testIdentifier = '1234567'; @@ -42,34 +48,34 @@ describe('Inventory', () => { user = userProperties; // create job profile for create - NewFieldMappingProfile.createMappingProfileViaApi(profile.createMappingProfile).then( - (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApi( - profile.createActionProfile, - mappingProfileResponse.body.id, - ) - .then((actionProfileResponse) => { - NewJobProfile.createJobProfileWithLinkedActionProfileViaApi( - profile.createJobProfile, - actionProfileResponse.body.id, - ); - }) - .then((id) => { - createJobProfileId = id; + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + profile.createMappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + profile.createActionProfile, + mappingProfileResponse.body.id, + ) + .then((actionProfileResponse) => { + NewJobProfile.createJobProfileWithLinkedActionProfileViaApi( + profile.createJobProfile, + actionProfileResponse.body.id, + ); + }) + .then((id) => { + createJobProfileId = id; - Z3950TargetProfiles.createNewZ3950TargetProfileViaApi(targetProfileName, [ - createJobProfileId, - ]).then((initialId) => { - profileId = initialId; - }); + Z3950TargetProfiles.createNewZ3950TargetProfileViaApi(targetProfileName, [ + createJobProfileId, + ]).then((initialId) => { + profileId = initialId; }); - - cy.login(user.username, user.password, { - path: TopMenu.inventoryPath, - waiter: InventoryInstances.waitContentLoading, }); - }, - ); + + cy.login(user.username, user.password, { + path: TopMenu.inventoryPath, + waiter: InventoryInstances.waitContentLoading, + }); + }); }); }); diff --git a/cypress/e2e/orders/pol-with-linked-holdings-could-be-found-by-location-filteringon-order-lines-pane.cy.js b/cypress/e2e/orders/pol-with-linked-holdings-could-be-found-by-location-filteringon-order-lines-pane.cy.js new file mode 100644 index 0000000000..80ece3f3fb --- /dev/null +++ b/cypress/e2e/orders/pol-with-linked-holdings-could-be-found-by-location-filteringon-order-lines-pane.cy.js @@ -0,0 +1,201 @@ +import uuid from 'uuid'; +import permissions from '../../support/dictionary/permissions'; +import getRandomPostfix from '../../support/utils/stringTools'; +import FiscalYears from '../../support/fragments/finance/fiscalYears/fiscalYears'; +import TopMenu from '../../support/fragments/topMenu'; +import Ledgers from '../../support/fragments/finance/ledgers/ledgers'; +import Users from '../../support/fragments/users/users'; +import Funds from '../../support/fragments/finance/funds/funds'; +import DateTools from '../../support/utils/dateTools'; +import NewOrder from '../../support/fragments/orders/newOrder'; +import Orders from '../../support/fragments/orders/orders'; +import OrderLines from '../../support/fragments/orders/orderLines'; +import Organizations from '../../support/fragments/organizations/organizations'; +import NewOrganization from '../../support/fragments/organizations/newOrganization'; +import ServicePoints from '../../support/fragments/settings/tenant/servicePoints/servicePoints'; +import NewLocation from '../../support/fragments/settings/tenant/locations/newLocation'; +import Budgets from '../../support/fragments/finance/budgets/budgets'; +import { ACQUISITION_METHOD_NAMES_IN_PROFILE, ORDER_STATUSES } from '../../support/constants'; +import BasicOrderLine from '../../support/fragments/orders/basicOrderLine'; +import MaterialTypes from '../../support/fragments/settings/inventory/materialTypes'; + +describe('Orders', () => { + const firstFiscalYear = { ...FiscalYears.defaultUiFiscalYear }; + const secondFiscalYear = { + name: `autotest_year_${getRandomPostfix()}`, + code: DateTools.getRandomFiscalYearCode(2000, 9999), + periodStart: `${DateTools.getDayTomorrowDateForFiscalYear()}T00:00:00.000+00:00`, + periodEnd: `${DateTools.get2DaysAfterTomorrowDateForFiscalYear()}T00:00:00.000+00:00`, + description: `This is fiscal year created by E2E test automation script_${getRandomPostfix()}`, + series: 'FY', + }; + const defaultLedger = { ...Ledgers.defaultUiLedger }; + const firstFund = { ...Funds.defaultUiFund }; + const secondFund = { + name: `autotest_fund2_${getRandomPostfix()}`, + code: getRandomPostfix(), + externalAccountNo: getRandomPostfix(), + fundStatus: 'Active', + description: `This is fund created by E2E test automation script_${getRandomPostfix()}`, + }; + const firstOrder = { + ...NewOrder.getDefaultOngoingOrder, + orderType: 'Ongoing', + ongoing: { isSubscription: false, manualRenewal: false }, + approved: true, + reEncumber: true, + }; + const secondOrder = { + ...NewOrder.getDefaultOngoingOrder, + orderType: 'Ongoing', + ongoing: { isSubscription: false, manualRenewal: false }, + approved: true, + reEncumber: true, + id: uuid(), + }; + + const organization = { ...NewOrganization.defaultUiOrganizations }; + firstFiscalYear.code = firstFiscalYear.code.slice(0, -1) + '1'; + const firstBudget = { + ...Budgets.getDefaultBudget(), + allocated: 1000, + }; + let user; + let firstOrderNumber; + let secondOrderNumber; + let servicePointId; + let location; + + before(() => { + cy.getAdminToken(); + // create first Fiscal Year and prepere 2 Funds for Rollover + FiscalYears.createViaApi(firstFiscalYear).then((firstFiscalYearResponse) => { + firstFiscalYear.id = firstFiscalYearResponse.id; + firstBudget.fiscalYearId = firstFiscalYearResponse.id; + defaultLedger.fiscalYearOneId = firstFiscalYear.id; + secondFiscalYear.code = firstFiscalYear.code.slice(0, -1) + '2'; + Ledgers.createViaApi(defaultLedger).then((ledgerResponse) => { + defaultLedger.id = ledgerResponse.id; + firstFund.ledgerId = defaultLedger.id; + secondFund.ledgerId = defaultLedger.id; + + Funds.createViaApi(firstFund).then((fundResponse) => { + firstFund.id = fundResponse.fund.id; + firstBudget.fundId = fundResponse.fund.id; + Budgets.createViaApi(firstBudget); + + ServicePoints.getViaApi().then((servicePoint) => { + servicePointId = servicePoint[0].id; + NewLocation.createViaApi(NewLocation.getDefaultLocation(servicePointId)).then((res) => { + location = res; + + MaterialTypes.createMaterialTypeViaApi(MaterialTypes.getDefaultMaterialType()).then( + (mtypes) => { + cy.getAcquisitionMethodsApi({ + query: `value="${ACQUISITION_METHOD_NAMES_IN_PROFILE.PURCHASE_AT_VENDOR_SYSTEM}"`, + }).then((params) => { + // Prepare 2 Open Orders for Rollover + Organizations.createOrganizationViaApi(organization).then( + (responseOrganizations) => { + organization.id = responseOrganizations; + secondOrder.vendor = organization.id; + firstOrder.vendor = organization.id; + const firstOrderLine = { + ...BasicOrderLine.defaultOrderLine, + cost: { + listUnitPrice: 100.0, + currency: 'USD', + discountType: 'percentage', + quantityPhysical: 1, + poLineEstimatedPrice: 100.0, + }, + fundDistribution: [ + { code: firstFund.code, fundId: firstFund.id, value: 100 }, + ], + locations: [ + { locationId: location.id, quantity: 1, quantityPhysical: 1 }, + ], + acquisitionMethod: params.body.acquisitionMethods[0].id, + physical: { + createInventory: 'Instance, Holding, Item', + materialType: mtypes.body.id, + materialSupplier: responseOrganizations, + volumes: [], + }, + }; + Orders.createOrderViaApi(firstOrder).then((firstOrderResponse) => { + firstOrder.id = firstOrderResponse.id; + firstOrderNumber = firstOrderResponse.poNumber; + firstOrderLine.purchaseOrderId = firstOrderResponse.id; + OrderLines.createOrderLineViaApi(firstOrderLine); + }); + cy.loginAsAdmin({ path: TopMenu.ordersPath, waiter: Orders.waitLoading }); + Orders.createOrderViaApi(secondOrder).then((secondOrderResponse) => { + secondOrder.id = secondOrderResponse.id; + secondOrderNumber = secondOrderResponse.poNumber; + Orders.searchByParameter('PO number', secondOrderNumber); + Orders.selectFromResultsList(secondOrderNumber); + OrderLines.addPOLine(); + OrderLines.selectRandomInstanceInTitleLookUP('*', 10); + OrderLines.rolloverPOLineInfoforPhysicalMaterialWithFund( + firstFund, + '50', + '1', + '50', + location.name, + ); + OrderLines.backToEditingOrder(); + Orders.resetFilters(); + }); + }, + ); + }); + }, + ); + }); + }); + }); + }); + }); + + cy.createTempUser([permissions.uiOrdersEdit.gui]).then((userProperties) => { + user = userProperties; + cy.login(userProperties.username, userProperties.password, { + path: TopMenu.orderLinesPath, + waiter: OrderLines.waitLoading, + }); + }); + }); + + after(() => { + cy.getAdminToken(); + Users.deleteViaApi(user.userId); + }); + + it( + 'C451533 Order line with linked Holdings could be found by "Location" filtering facet on "Order lines" pane (thunderjet) (TaaS)', + { tags: ['criticalPath', 'thunderjet'] }, + () => { + OrderLines.resetFilters(); + OrderLines.selectLocationInFilters(location.name); + OrderLines.checkExistingPOLInOrderLinesList(`${firstOrderNumber}-1`); + OrderLines.checkExistingPOLInOrderLinesList(`${secondOrderNumber}-1`); + OrderLines.selectOrders(); + Orders.searchByParameter('PO number', firstOrderNumber); + Orders.selectFromResultsList(firstOrderNumber); + Orders.openOrder(); + Orders.checkOrderStatus(ORDER_STATUSES.OPEN); + Orders.closeThirdPane(); + Orders.searchByParameter('PO number', secondOrderNumber); + Orders.selectFromResultsList(secondOrderNumber); + Orders.openOrder(); + Orders.checkOrderStatus(ORDER_STATUSES.OPEN); + Orders.closeThirdPane(); + Orders.selectOrderLines(); + OrderLines.resetFilters(); + OrderLines.selectLocationInFilters(location.name); + OrderLines.checkExistingPOLInOrderLinesList(`${firstOrderNumber}-1`); + OrderLines.checkExistingPOLInOrderLinesList(`${secondOrderNumber}-1`); + }, + ); +}); diff --git a/cypress/e2e/orders/receiving-and-check-in/pol-with-linked-holdings-could-be-found-by-location-filtering.cy.js b/cypress/e2e/orders/receiving-and-check-in/pol-with-linked-holdings-could-be-found-by-location-filtering.cy.js index fa743a413e..773d8de10f 100644 --- a/cypress/e2e/orders/receiving-and-check-in/pol-with-linked-holdings-could-be-found-by-location-filtering.cy.js +++ b/cypress/e2e/orders/receiving-and-check-in/pol-with-linked-holdings-could-be-found-by-location-filtering.cy.js @@ -20,7 +20,7 @@ import BasicOrderLine from '../../../support/fragments/orders/basicOrderLine'; import MaterialTypes from '../../../support/fragments/settings/inventory/materialTypes'; import Receiving from '../../../support/fragments/receiving/receiving'; -describe('ui-finance: Fiscal Year Rollover', () => { +describe('Orders > Receiving and Check-in ', () => { const firstFiscalYear = { ...FiscalYears.defaultUiFiscalYear }; const secondFiscalYear = { name: `autotest_year_${getRandomPostfix()}`, diff --git a/cypress/e2e/settings/data-import/all-profiles-reappear-after-clearing-profile-search-box.cy.js b/cypress/e2e/settings/data-import/all-profiles-reappear-after-clearing-profile-search-box.cy.js index 6643c80991..62842a6b5f 100644 --- a/cypress/e2e/settings/data-import/all-profiles-reappear-after-clearing-profile-search-box.cy.js +++ b/cypress/e2e/settings/data-import/all-profiles-reappear-after-clearing-profile-search-box.cy.js @@ -1,3 +1,4 @@ +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; @@ -22,28 +23,44 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('Settings', () => { let user; - const mappingProfileName = `402365 autotest mapping profile_${getRandomPostfix()}`; - const actionProfileName = `402365 autotest action profile_${getRandomPostfix()}`; - const matchProfileName = `402365 autotest match profile_${getRandomPostfix()}`; - const jobProfileName = `402365 autotest job profile_${getRandomPostfix()}`; + const mappingProfile = { + name: `402365 autotest mapping profile_${getRandomPostfix()}`, + }; + const actionProfile = { + name: `402365 autotest action profile_${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }; + const matchProfile = { + profileName: `402365 autotest match profile_${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + }, + matchCriterion: 'Exactly matches', + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + instanceOption: NewMatchProfile.optionsList.instanceHrid, + }; + const jobProfile = { + name: `402365 autotest job profile_${getRandomPostfix()}`, + }; - before('Create test data and login', () => { + before('create test data', () => { cy.getAdminToken(); - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfileName).then( + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile).then( (mappingProfileResponse) => { NewActionProfile.createActionProfileViaApi( - actionProfileName, + actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { - NewMatchProfile.createMatchProfileViaApi(matchProfileName).then( - (matchProfileResponse) => { - NewJobProfile.createJobProfileViaApi( - jobProfileName, - matchProfileResponse.body.id, - actionProfileResponse.body.id, - ); - }, - ); + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi( + matchProfile, + ).then((matchProfileResponse) => { + NewJobProfile.createJobProfileWithLinkedMatchAndActionProfilesViaApi( + jobProfile.name, + matchProfileResponse.body.id, + actionProfileResponse.body.id, + ); + }); }); }, ); @@ -60,10 +77,10 @@ describe('Data Import', () => { after('Delete test data', () => { cy.getAdminToken().then(() => { - SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileName); - SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfileName); - SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfileName); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfileName); + SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.name); + SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); + SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); Users.deleteViaApi(user.userId); }); }); @@ -73,9 +90,9 @@ describe('Data Import', () => { { tags: ['extendedPath', 'folijet'] }, () => { FieldMappingProfiles.checkListOfExistingProfilesIsDisplayed(); - FieldMappingProfiles.search(mappingProfileName); - FieldMappingProfileView.closeViewMode(mappingProfileName); - FieldMappingProfiles.verifySearchResult(mappingProfileName); + FieldMappingProfiles.search(mappingProfile.name); + FieldMappingProfileView.closeViewMode(mappingProfile.name); + FieldMappingProfiles.verifySearchResult(mappingProfile.name); FieldMappingProfiles.clearSearchField(); FieldMappingProfiles.verifySearchFieldIsEmpty(); FieldMappingProfiles.checkListOfExistingProfilesIsDisplayed(); @@ -83,8 +100,8 @@ describe('Data Import', () => { cy.visit(SettingsMenu.actionProfilePath); ActionProfiles.checkListOfExistingProfilesIsDisplayed(); ActionProfiles.verifySearchFieldIsEmpty(); - ActionProfiles.search(actionProfileName); - ActionProfiles.verifySearchResult(actionProfileName); + ActionProfiles.search(actionProfile.name); + ActionProfiles.verifySearchResult(actionProfile.name); ActionProfiles.clearSearchField(); ActionProfiles.verifySearchFieldIsEmpty(); ActionProfiles.checkListOfExistingProfilesIsDisplayed(); @@ -92,8 +109,8 @@ describe('Data Import', () => { cy.visit(SettingsMenu.matchProfilePath); MatchProfiles.verifyListOfExistingProfilesIsDisplayed(); MatchProfiles.verifySearchFieldIsEmpty(); - MatchProfiles.search(matchProfileName); - MatchProfiles.verifySearchResult(matchProfileName); + MatchProfiles.search(matchProfile.profileName); + MatchProfiles.verifySearchResult(matchProfile.profileName); MatchProfiles.clearSearchField(); MatchProfiles.verifySearchFieldIsEmpty(); MatchProfiles.verifyListOfExistingProfilesIsDisplayed(); @@ -101,8 +118,8 @@ describe('Data Import', () => { cy.visit(SettingsMenu.jobProfilePath); JobProfiles.checkListOfExistingProfilesIsDisplayed(); JobProfiles.verifySearchFieldIsEmpty(); - JobProfiles.search(jobProfileName); - JobProfiles.verifySearchResult(jobProfileName); + JobProfiles.search(jobProfile.name); + JobProfiles.verifySearchResult(jobProfile.name); JobProfiles.clearSearchField(); JobProfiles.verifySearchFieldIsEmpty(); JobProfiles.checkListOfExistingProfilesIsDisplayed(); diff --git a/cypress/e2e/settings/data-import/attach-profiles-to-job-profile.cy.js b/cypress/e2e/settings/data-import/attach-profiles-to-job-profile.cy.js index 00668a093c..f273712503 100644 --- a/cypress/e2e/settings/data-import/attach-profiles-to-job-profile.cy.js +++ b/cypress/e2e/settings/data-import/attach-profiles-to-job-profile.cy.js @@ -1,4 +1,4 @@ -import { ACCEPTED_DATA_TYPE_NAMES } from '../../../support/constants'; +import { ACCEPTED_DATA_TYPE_NAMES, EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import ActionProfileView from '../../../support/fragments/data_import/action_profiles/actionProfileView'; import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; @@ -23,21 +23,55 @@ describe('Data Import', () => { let user; const collectionOfMatchProfiles = [ { - profileName: `C11139 autotest match profile1 ${getRandomPostfix()}`, + matchProfile: { + profileName: `C11139 autotest match profile1 ${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + matchCriterion: 'Exactly matches', + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + instanceOption: NewMatchProfile.optionsList.instanceHrid, + }, }, { - profileName: `C11139 autotest match profile2 ${getRandomPostfix()}`, + matchProfile: { + profileName: `C11139 autotest match profile2 ${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + matchCriterion: 'Exactly matches', + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + instanceOption: NewMatchProfile.optionsList.instanceHrid, + }, }, ]; const collectionOfActionProfiles = [ { - name: `C11139 autotest action profile1 ${getRandomPostfix()}`, + actionProfile: { + name: `C11139 autotest action profile1 ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, }, { - name: `C11139 autotest action profile2 ${getRandomPostfix()}`, + actionProfile: { + name: `C11139 autotest action profile2 ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, }, { - name: `C11139 autotest action profile3 ${getRandomPostfix()}`, + actionProfile: { + name: `C11139 autotest action profile3 ${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, }, ]; const mappingProfile = { @@ -51,20 +85,21 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; + cy.login(user.username, user.password, { path: SettingsMenu.jobProfilePath, waiter: JobProfiles.waitLoadingList, }); // create 3 action profiles linked to mapping profile - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfile.name).then( + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile).then( (mappingProfileResponse) => { collectionOfActionProfiles.forEach((profile) => { NewActionProfile.createActionProfileViaApi( - profile.name, + profile.actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { - profile.id = actionProfileResponse.body.id; + profile.actionProfile.id = actionProfileResponse.body.id; }); }); }, @@ -72,11 +107,11 @@ describe('Data Import', () => { // create 2 match profile collectionOfMatchProfiles.forEach((profile) => { - NewMatchProfile.createMatchProfileViaApi(profile.profileName).then( - (matchProfileResponse) => { - profile.id = matchProfileResponse.body.id; - }, - ); + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi( + profile.matchProfile, + ).then((matchProfileResponse) => { + profile.matchProfile.id = matchProfileResponse.body.id; + }); }); }); }); @@ -96,40 +131,61 @@ describe('Data Import', () => { { tags: ['extendedPath', 'folijet'] }, () => { JobProfiles.createJobProfile(jobProfile); - NewJobProfile.linkMatchProfile(collectionOfMatchProfiles[0].profileName); - NewJobProfile.linkMatchProfileForMatches(collectionOfMatchProfiles[1].profileName); - NewJobProfile.linkActionProfileForMatches(collectionOfActionProfiles[0].name, 2); - NewJobProfile.linkActionProfileForMatches(collectionOfActionProfiles[1].name, 2); - NewJobProfile.linkActionProfileForNonMatches(collectionOfActionProfiles[2].name, 3); + NewJobProfile.linkMatchProfile(collectionOfMatchProfiles[0].matchProfile.profileName); + NewJobProfile.linkMatchProfileForMatches( + collectionOfMatchProfiles[1].matchProfile.profileName, + ); + NewJobProfile.linkActionProfileForMatches( + collectionOfActionProfiles[0].actionProfile.name, + 2, + ); + NewJobProfile.linkActionProfileForMatches( + collectionOfActionProfiles[1].actionProfile.name, + 2, + ); + NewJobProfile.linkActionProfileForNonMatches( + collectionOfActionProfiles[2].actionProfile.name, + 3, + ); NewJobProfile.saveAndClose(); JobProfileView.verifyLinkedProfiles( [ - collectionOfMatchProfiles[0].profileName, - collectionOfMatchProfiles[1].profileName, - collectionOfActionProfiles[0].name, - collectionOfActionProfiles[1].name, - collectionOfActionProfiles[2].name, + collectionOfMatchProfiles[0].matchProfile.profileName, + collectionOfMatchProfiles[1].matchProfile.profileName, + collectionOfActionProfiles[0].actionProfile.name, + collectionOfActionProfiles[1].actionProfile.name, + collectionOfActionProfiles[2].actionProfile.name, ], 5, ); - JobProfileView.openLinkedProfileById(collectionOfActionProfiles[0].id); - ActionProfileView.verifyActionProfileTitleName(collectionOfActionProfiles[0].name); + JobProfileView.openLinkedProfileById(collectionOfActionProfiles[0].actionProfile.id); + ActionProfileView.verifyActionProfileTitleName( + collectionOfActionProfiles[0].actionProfile.name, + ); cy.visit(SettingsMenu.jobProfilePath); JobProfiles.select(jobProfile.profileName); - JobProfileView.openLinkedProfileById(collectionOfActionProfiles[1].id); - ActionProfileView.verifyActionProfileTitleName(collectionOfActionProfiles[1].name); + JobProfileView.openLinkedProfileById(collectionOfActionProfiles[1].actionProfile.id); + ActionProfileView.verifyActionProfileTitleName( + collectionOfActionProfiles[1].actionProfile.name, + ); cy.visit(SettingsMenu.jobProfilePath); JobProfiles.select(jobProfile.profileName); - JobProfileView.openLinkedProfileById(collectionOfActionProfiles[2].id); - ActionProfileView.verifyActionProfileTitleName(collectionOfActionProfiles[2].name); + JobProfileView.openLinkedProfileById(collectionOfActionProfiles[2].actionProfile.id); + ActionProfileView.verifyActionProfileTitleName( + collectionOfActionProfiles[2].actionProfile.name, + ); cy.visit(SettingsMenu.jobProfilePath); JobProfiles.select(jobProfile.profileName); - JobProfileView.openLinkedProfileById(collectionOfMatchProfiles[0].id); - MatchProfileView.verifyMatchProfileTitleName(collectionOfMatchProfiles[0].profileName); + JobProfileView.openLinkedProfileById(collectionOfMatchProfiles[0].matchProfile.id); + MatchProfileView.verifyMatchProfileTitleName( + collectionOfMatchProfiles[0].matchProfile.profileName, + ); cy.visit(SettingsMenu.jobProfilePath); JobProfiles.select(jobProfile.profileName); - JobProfileView.openLinkedProfileById(collectionOfMatchProfiles[1].id); - MatchProfileView.verifyMatchProfileTitleName(collectionOfMatchProfiles[1].profileName); + JobProfileView.openLinkedProfileById(collectionOfMatchProfiles[1].matchProfile.id); + MatchProfileView.verifyMatchProfileTitleName( + collectionOfMatchProfiles[1].matchProfile.profileName, + ); }, ); }); diff --git a/cypress/e2e/settings/data-import/check-incoming-records-dd-options-list.cy.js b/cypress/e2e/settings/data-import/check-incoming-records-dd-options-list.cy.js index dc69afbc4a..0d3e70642f 100644 --- a/cypress/e2e/settings/data-import/check-incoming-records-dd-options-list.cy.js +++ b/cypress/e2e/settings/data-import/check-incoming-records-dd-options-list.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import { MatchProfiles, SettingsDataImport } from '../../../support/fragments/settings/dataImport'; import { SETTINGS_TABS } from '../../../support/fragments/settings/dataImport/settingsDataImport'; @@ -45,7 +45,7 @@ describe('Data Import', () => { const MatchProfileEditForm = MatchProfiles.clickCreateNewMatchProfile(); // Click on "Holdings" option as the "Existing records" type - MatchProfileEditForm.selectExistingRecordType(EXISTING_RECORDS_NAMES.HOLDINGS); + MatchProfileEditForm.selectExistingRecordType(EXISTING_RECORD_NAMES.HOLDINGS); // Dropdown list opens and correct options appears MatchProfileEditForm.verifyIncomingRecordsDropdown( @@ -67,7 +67,7 @@ describe('Data Import', () => { const MatchProfileEditForm = MatchProfiles.clickCreateNewMatchProfile(); // Click on "MARC Bibliographic" option as the "Existing records" type - MatchProfileEditForm.selectExistingRecordType(EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC); + MatchProfileEditForm.selectExistingRecordType(EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC); // Dropdown list opens and correct options appears MatchProfileEditForm.verifyIncomingRecordsDropdown( @@ -89,7 +89,7 @@ describe('Data Import', () => { const MatchProfileEditForm = MatchProfiles.clickCreateNewMatchProfile(); // Click on "Item" option as the "Existing records" type - MatchProfileEditForm.selectExistingRecordType(EXISTING_RECORDS_NAMES.ITEM); + MatchProfileEditForm.selectExistingRecordType(EXISTING_RECORD_NAMES.ITEM); // Dropdown list opens and correct options appears MatchProfileEditForm.verifyIncomingRecordsDropdown( diff --git a/cypress/e2e/settings/data-import/check-linking-unlinking-action-to-job.cy.js b/cypress/e2e/settings/data-import/check-linking-unlinking-action-to-job.cy.js index bc31f2e3d8..fc277d00ca 100644 --- a/cypress/e2e/settings/data-import/check-linking-unlinking-action-to-job.cy.js +++ b/cypress/e2e/settings/data-import/check-linking-unlinking-action-to-job.cy.js @@ -20,13 +20,25 @@ describe('Data Import', () => { const actionProfiles = [ { - name: `C423404 autoTestActionProf.${getRandomPostfix()}`, + actionProfile: { + name: `C423404 autoTestActionProf.${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, }, { - name: `C423404 autoTestActionProf.${getRandomPostfix()}`, + actionProfile: { + name: `C423404 autoTestActionProf.${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, }, { - name: `C423404 autoTestActionProf.${getRandomPostfix()}`, + actionProfile: { + name: `C423404 autoTestActionProf.${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, }, ]; const mappingProfile = { @@ -43,14 +55,14 @@ describe('Data Import', () => { testData.user = userProperties; // create 3 action profiles linked to mapping profile - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfile.name).then( + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile).then( (mappingProfileResponse) => { actionProfiles.forEach((profile) => { NewActionProfile.createActionProfileViaApi( - profile.name, + profile.actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { - profile.id = actionProfileResponse.body.id; + profile.actionProfile.id = actionProfileResponse.body.id; }); }); }, @@ -82,10 +94,14 @@ describe('Data Import', () => { JobProfiles.createJobProfile(jobProfile); // Add three action profiles to the job profile actionProfiles.forEach((profile) => { - NewJobProfile.linkActionProfile(profile); + NewJobProfile.linkActionProfile(profile.actionProfile); }); JobProfileEdit.verifyLinkedProfiles( - [actionProfiles[0].name, actionProfiles[1].name, actionProfiles[2].name], + [ + actionProfiles[0].actionProfile.name, + actionProfiles[1].actionProfile.name, + actionProfiles[2].actionProfile.name, + ], 3, ); // #4 Save the new job profile @@ -96,13 +112,16 @@ describe('Data Import', () => { JobProfileEdit.verifyScreenName(jobProfile.profileName); // #6 Delete the second action profile from the job profile JobProfileEdit.unlinkActionProfile(1); - JobProfileEdit.verifyLinkedProfiles([actionProfiles[0].name, actionProfiles[2].name], 2); + JobProfileEdit.verifyLinkedProfiles( + [actionProfiles[0].actionProfile.name, actionProfiles[2].actionProfile.name], + 2, + ); // #7 Delete the first action profile from the job profile JobProfileEdit.unlinkActionProfile(0); - JobProfileEdit.verifyLinkedProfiles([actionProfiles[2].name], 1); + JobProfileEdit.verifyLinkedProfiles([actionProfiles[2].actionProfile.name], 1); // #8 Save the edited job profile JobProfileEdit.saveAndClose(); - JobProfileView.verifyLinkedProfiles([actionProfiles[2].name], 1); + JobProfileView.verifyLinkedProfiles([actionProfiles[2].actionProfile.name], 1); }, ); }); diff --git a/cypress/e2e/settings/data-import/create-job-profile-with-same-matches-in-different-sequences.cy.js b/cypress/e2e/settings/data-import/create-job-profile-with-same-matches-in-different-sequences.cy.js index 46c7cc2bb2..60d8acd710 100644 --- a/cypress/e2e/settings/data-import/create-job-profile-with-same-matches-in-different-sequences.cy.js +++ b/cypress/e2e/settings/data-import/create-job-profile-with-same-matches-in-different-sequences.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; @@ -25,7 +25,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }, }, @@ -40,7 +40,7 @@ describe('Data Import', () => { incomingStaticValue: `Text_${getRandomPostfix()}`, incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.instanceHrid, }, }, diff --git a/cypress/e2e/settings/data-import/create-match-profile-for-marc-bib-matching.cy.js b/cypress/e2e/settings/data-import/create-match-profile-for-marc-bib-matching.cy.js index e0a7af49d0..32aa381018 100644 --- a/cypress/e2e/settings/data-import/create-match-profile-for-marc-bib-matching.cy.js +++ b/cypress/e2e/settings/data-import/create-match-profile-for-marc-bib-matching.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import { MatchProfiles as SettingsMatchProfiles } from '../../../support/fragments/settings/dataImport'; import MatchProfileView from '../../../support/fragments/settings/dataImport/matchProfiles/matchProfileView'; @@ -37,7 +37,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; @@ -89,7 +89,7 @@ describe('Data Import', () => { subfield: 's', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; cy.visit(SettingsMenu.matchProfilePath); @@ -132,7 +132,7 @@ describe('Data Import', () => { incomingStaticValue: 'Online', incomingStaticRecordValue: 'Text', matchCriterion: 'Existing value contains incoming value', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingRecordOption: NewMatchProfile.optionsList.holdingsHrid, }; @@ -174,7 +174,7 @@ describe('Data Import', () => { incomingStaticValue: '3456', incomingStaticRecordValue: 'Number', matchCriterion: 'Existing value contains incoming value', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingRecordOption: NewMatchProfile.optionsList.holdingsHrid, }; @@ -209,7 +209,7 @@ describe('Data Import', () => { incomingStaticValue: DateTools.getFormattedDate({ date: new Date() }), incomingStaticRecordValue: 'Date', matchCriterion: 'Existing value contains incoming value', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingRecordOption: NewMatchProfile.optionsList.holdingsHrid, }; @@ -244,7 +244,7 @@ describe('Data Import', () => { incomingStaticValue: DateTools.getFormattedDate({ date: new Date() }), incomingStaticRecordValue: 'Date range', matchCriterion: 'Existing value contains incoming value', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingRecordOption: NewMatchProfile.optionsList.holdingsHrid, }; diff --git a/cypress/e2e/settings/data-import/create-new-match-profile-with-long-name.cy.js b/cypress/e2e/settings/data-import/create-new-match-profile-with-long-name.cy.js index 87393c7467..3462353724 100644 --- a/cypress/e2e/settings/data-import/create-new-match-profile-with-long-name.cy.js +++ b/cypress/e2e/settings/data-import/create-new-match-profile-with-long-name.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import { MatchProfiles as SettingsMatchProfiles } from '../../../support/fragments/settings/dataImport'; import MatchProfileView from '../../../support/fragments/settings/dataImport/matchProfiles/matchProfileView'; @@ -19,7 +19,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const calloutMessage = `The match profile "${matchProfile.profileName}" was successfully created`; diff --git a/cypress/e2e/settings/data-import/delete-an-existing-action-profile.cy.js b/cypress/e2e/settings/data-import/delete-an-existing-action-profile.cy.js index 9fd758c593..3e8cbff50e 100644 --- a/cypress/e2e/settings/data-import/delete-an-existing-action-profile.cy.js +++ b/cypress/e2e/settings/data-import/delete-an-existing-action-profile.cy.js @@ -26,8 +26,12 @@ describe('Data Import', () => { }; const profile = { createJobProfile: `autotest jobProfileForCreate.${getRandomPostfix()}`, - createActionProfile: `autotest actionProfileForCreate${getRandomPostfix()}`, - createMappingProfile: `autotest mappingProfileForCreate${getRandomPostfix()}`, + createActionProfile: { + name: `autotest actionProfileForCreate${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }, + createMappingProfile: { name: `autotest mappingProfileForCreate${getRandomPostfix()}` }, }; const calloutMessage = `The action profile "${actionProfileToDelete.name}" was successfully deleted`; @@ -36,24 +40,24 @@ describe('Data Import', () => { cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; - NewFieldMappingProfile.createMappingProfileViaApi(profile.createMappingProfile).then( - (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApi( - profile.createActionProfile, - mappingProfileResponse.body.id, - ).then((actionProfileResponse) => { - NewJobProfile.createJobProfileWithLinkedActionProfileViaApi( - profile.createJobProfile, - actionProfileResponse.body.id, - ); - }); + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + profile.createMappingProfile, + ).then((mappingProfileResponse) => { + NewActionProfile.createActionProfileViaApi( + profile.createActionProfile, + mappingProfileResponse.body.id, + ).then((actionProfileResponse) => { + NewJobProfile.createJobProfileWithLinkedActionProfileViaApi( + profile.createJobProfile, + actionProfileResponse.body.id, + ); + }); - cy.login(user.username, user.password, { - path: SettingsMenu.actionProfilePath, - waiter: ActionProfiles.waitLoading, - }); - }, - ); + cy.login(user.username, user.password, { + path: SettingsMenu.actionProfilePath, + waiter: ActionProfiles.waitLoading, + }); + }); }); ActionProfiles.createWithoutLinkedMappingProfile(actionProfileToDelete); }); @@ -71,8 +75,8 @@ describe('Data Import', () => { 'C2346 Delete an existing action profile (folijet) (TaaS)', { tags: ['extendedPath', 'folijet'] }, () => { - ActionProfiles.search(profile.createActionProfile); - ActionProfiles.selectActionProfileFromList(profile.createActionProfile); + ActionProfiles.search(profile.createActionProfile.name); + ActionProfiles.selectActionProfileFromList(profile.createActionProfile.name); ActionProfileView.delete(); ConfirmDelete.confirmDeleteActionProfile(); ExceptionDelete.verifyExceptionMessage(); diff --git a/cypress/e2e/settings/data-import/delete-an-existing-match-profile.cy.js b/cypress/e2e/settings/data-import/delete-an-existing-match-profile.cy.js index eda30a4b04..8e6c5448b0 100644 --- a/cypress/e2e/settings/data-import/delete-an-existing-match-profile.cy.js +++ b/cypress/e2e/settings/data-import/delete-an-existing-match-profile.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile'; import { @@ -27,11 +27,26 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + }; + const matchProfileToCreate = { + profileName: `autotest matchProfileForCreate${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + existingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const profile = { createJobProfile: `autotest jobProfileForCreate.${getRandomPostfix()}`, - createMatchProfile: `autotest matchProfileForCreate${getRandomPostfix()}`, }; const calloutMessage = `The match profile "${matchProfileToDelete.profileName}" was successfully deleted`; @@ -39,14 +54,15 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; - NewMatchProfile.createMatchProfileViaApi(profile.createMatchProfile).then( - (matchProfileResponse) => { - NewJobProfile.createJobProfileWithLinkedMatchProfileViaApi( - profile.createJobProfile, - matchProfileResponse.body.id, - ); - }, - ); + + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi( + matchProfileToCreate, + ).then((matchProfileResponse) => { + NewJobProfile.createJobProfileWithLinkedMatchProfileViaApi( + profile.createJobProfile, + matchProfileResponse.body.id, + ); + }); cy.login(user.username, user.password); cy.visit(SettingsMenu.matchProfilePath); }); @@ -66,8 +82,8 @@ describe('Data Import', () => { 'C2341 Delete an existing match profile (folijet) (TaaS)', { tags: ['extendedPath', 'folijet'] }, () => { - MatchProfiles.search(profile.createMatchProfile); - MatchProfiles.selectMatchProfileFromList(profile.createMatchProfile); + MatchProfiles.search(matchProfileToCreate.profileName); + MatchProfiles.selectMatchProfileFromList(matchProfileToCreate.profileName); MatchProfileView.delete(); ConfirmDelete.delete(); ExceptionDelete.verifyExceptionMessage(); diff --git a/cypress/e2e/settings/data-import/delete-mapping-profile.cy.js b/cypress/e2e/settings/data-import/delete-mapping-profile.cy.js index 3cb11332de..c454161b4b 100644 --- a/cypress/e2e/settings/data-import/delete-mapping-profile.cy.js +++ b/cypress/e2e/settings/data-import/delete-mapping-profile.cy.js @@ -17,15 +17,23 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('Settings', () => { let user; - const notLinkedMappingProfile = `C2353_autotest_mappingProfile${getRandomStringCode(160)}`; - const linkedMappingProfile = `C2353_autotest_mappingProfile${getRandomPostfix()}`; - const actionProfile = `C2353_autotest_actionProfile${getRandomPostfix()}`; + const notLinkedMappingProfile = { + name: `C2353_autotest_mappingProfile${getRandomStringCode(160)}`, + }; + const linkedMappingProfile = { + name: `C2353_autotest_mappingProfile${getRandomPostfix()}`, + }; + const actionProfile = { + name: `C2353_autotest_actionProfile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }; const jobProfile = `C2353_autotest_jobProfile${getRandomPostfix()}`; before('Create test data and login', () => { cy.getAdminToken().then(() => { // create mapping profile profile linked to action profile - NewFieldMappingProfile.createMappingProfileViaApi(linkedMappingProfile) + NewFieldMappingProfile.createInstanceMappingProfileViaApi(linkedMappingProfile) .then((mappingProfileResponse) => { NewActionProfile.createActionProfileViaApi( actionProfile, @@ -39,7 +47,7 @@ describe('Data Import', () => { ); }); // create not linked mapping profile - NewFieldMappingProfile.createMappingProfileViaApi(notLinkedMappingProfile); + NewFieldMappingProfile.createInstanceMappingProfileViaApi(notLinkedMappingProfile); }); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; @@ -51,8 +59,8 @@ describe('Data Import', () => { after('Delete test data', () => { cy.getAdminToken().then(() => { SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile); - SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(linkedMappingProfile); + SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(linkedMappingProfile.name); Users.deleteViaApi(user.userId); }); }); @@ -63,20 +71,20 @@ describe('Data Import', () => { () => { cy.visit(SettingsMenu.mappingProfilePath); - FieldMappingProfiles.search(linkedMappingProfile); - FieldMappingProfiles.selectMappingProfileFromList(linkedMappingProfile); + FieldMappingProfiles.search(linkedMappingProfile.name); + FieldMappingProfiles.selectMappingProfileFromList(linkedMappingProfile.name); - FieldMappingProfileView.delete(linkedMappingProfile); + FieldMappingProfileView.delete(linkedMappingProfile.name); FieldMappingProfileView.verifyCannotDeleteModalOpened(); FieldMappingProfileView.closeCannotDeleteModal(); - FieldMappingProfileView.closeViewMode(linkedMappingProfile); + FieldMappingProfileView.closeViewMode(linkedMappingProfile.name); - FieldMappingProfiles.search(notLinkedMappingProfile); - FieldMappingProfiles.selectMappingProfileFromList(notLinkedMappingProfile); + FieldMappingProfiles.search(notLinkedMappingProfile.name); + FieldMappingProfiles.selectMappingProfileFromList(notLinkedMappingProfile.name); - FieldMappingProfileView.delete(notLinkedMappingProfile); - FieldMappingProfiles.checkSuccessDelitionCallout(notLinkedMappingProfile); - FieldMappingProfiles.search(notLinkedMappingProfile); + FieldMappingProfileView.delete(notLinkedMappingProfile.name); + FieldMappingProfiles.checkSuccessDelitionCallout(notLinkedMappingProfile.name); + FieldMappingProfiles.search(notLinkedMappingProfile.name); FieldMappingProfiles.verifyMappingProfileAbsent(); }, ); diff --git a/cypress/e2e/settings/data-import/duplicate-an-existing-match-profile.cy.js b/cypress/e2e/settings/data-import/duplicate-an-existing-match-profile.cy.js index 6860435528..0b37390a30 100644 --- a/cypress/e2e/settings/data-import/duplicate-an-existing-match-profile.cy.js +++ b/cypress/e2e/settings/data-import/duplicate-an-existing-match-profile.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import { MatchProfiles as SettingsMatchProfiles } from '../../../support/fragments/settings/dataImport'; import MatchProfileView from '../../../support/fragments/settings/dataImport/matchProfiles/matchProfileView'; @@ -20,7 +20,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const duplicatedMatchProfile = { diff --git a/cypress/e2e/settings/data-import/duplicated-import-profile-has-enabled-indicator-set-to-true.cy.js b/cypress/e2e/settings/data-import/duplicated-import-profile-has-enabled-indicator-set-to-true.cy.js index 782b535254..02154f46b3 100644 --- a/cypress/e2e/settings/data-import/duplicated-import-profile-has-enabled-indicator-set-to-true.cy.js +++ b/cypress/e2e/settings/data-import/duplicated-import-profile-has-enabled-indicator-set-to-true.cy.js @@ -33,6 +33,7 @@ describe('Data Import', () => { Permissions.uiOrganizationsViewEditCreate.gui, ]).then((userProperties) => { user = userProperties; + cy.login(user.username, user.password, { path: SettingsMenu.mappingProfilePath, waiter: FieldMappingProfiles.waitLoading, diff --git a/cypress/e2e/settings/data-import/edit-existing-match-profile.cy.js b/cypress/e2e/settings/data-import/edit-existing-match-profile.cy.js index bb66729eea..a864accb28 100644 --- a/cypress/e2e/settings/data-import/edit-existing-match-profile.cy.js +++ b/cypress/e2e/settings/data-import/edit-existing-match-profile.cy.js @@ -1,4 +1,5 @@ import { Permissions } from '../../../support/dictionary'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { MatchProfiles as SettingsMatchProfiles } from '../../../support/fragments/settings/dataImport'; import MatchProfileEdit from '../../../support/fragments/settings/dataImport/matchProfiles/matchProfileEditForm'; import MatchProfileView from '../../../support/fragments/settings/dataImport/matchProfiles/matchProfileView'; @@ -11,11 +12,23 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('Settings', () => { let user; - const matchProfileName = `C2339 autotest MatchProf${getRandomPostfix()}`; + const matchProfile = { + profileName: `C2339 autotest MatchProf${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', + }; before('Create test data and login', () => { cy.getAdminToken(); - NewMatchProfile.createMatchProfileViaApi(matchProfileName); + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi(matchProfile); + cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; @@ -27,7 +40,7 @@ describe('Data Import', () => { after('Delete test data', () => { cy.getAdminToken().then(() => { Users.deleteViaApi(user.userId); - SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfileName); + SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); }); }); @@ -36,10 +49,10 @@ describe('Data Import', () => { { tags: ['criticalPath', 'folijet'] }, () => { MatchProfiles.verifyListOfExistingProfilesIsDisplayed(); - MatchProfiles.search(matchProfileName); - MatchProfiles.selectMatchProfileFromList(matchProfileName); + MatchProfiles.search(matchProfile.profileName); + MatchProfiles.selectMatchProfileFromList(matchProfile.profileName); MatchProfileView.edit(); - MatchProfileEdit.verifyScreenName(matchProfileName); + MatchProfileEdit.verifyScreenName(matchProfile.profileName); MatchProfileEdit.changeExistingInstanceRecordField(); MatchProfileEdit.clickSaveAndCloseButton({ profileCreated: false, diff --git a/cypress/e2e/settings/data-import/error-message-for-linking-action-and-mapping-profiles-with-different-record-type.cy.js b/cypress/e2e/settings/data-import/error-message-for-linking-action-and-mapping-profiles-with-different-record-type.cy.js index a1846fc00c..285de1b202 100644 --- a/cypress/e2e/settings/data-import/error-message-for-linking-action-and-mapping-profiles-with-different-record-type.cy.js +++ b/cypress/e2e/settings/data-import/error-message-for-linking-action-and-mapping-profiles-with-different-record-type.cy.js @@ -15,7 +15,6 @@ describe('Data Import', () => { let user; const mappingProfile = { name: `C404371 autotest mapping profile ${getRandomPostfix()}`, - typeValue: FOLIO_RECORD_TYPE.INSTANCE, }; const actionProfile = { typeValue: FOLIO_RECORD_TYPE.HOLDINGS, @@ -26,7 +25,7 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfile.name); + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/settings/data-import/error-message-when-attempting-to-create-new-data-import-profiles-with-existing-profile-names.cy.js b/cypress/e2e/settings/data-import/error-message-when-attempting-to-create-new-data-import-profiles-with-existing-profile-names.cy.js index cf4f354648..1069cfe147 100644 --- a/cypress/e2e/settings/data-import/error-message-when-attempting-to-create-new-data-import-profiles-with-existing-profile-names.cy.js +++ b/cypress/e2e/settings/data-import/error-message-when-attempting-to-create-new-data-import-profiles-with-existing-profile-names.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; @@ -40,7 +40,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const actionProfile = { name: 'Default - Create instance', diff --git a/cypress/e2e/settings/data-import/existing-profile-search-is-cleared-when-switching-to-a-different-profile.type.cy.js b/cypress/e2e/settings/data-import/existing-profile-search-is-cleared-when-switching-to-a-different-profile.type.cy.js index 0a068672ba..e1ec248948 100644 --- a/cypress/e2e/settings/data-import/existing-profile-search-is-cleared-when-switching-to-a-different-profile.type.cy.js +++ b/cypress/e2e/settings/data-import/existing-profile-search-is-cleared-when-switching-to-a-different-profile.type.cy.js @@ -1,3 +1,4 @@ +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; @@ -21,28 +22,43 @@ import getRandomPostfix from '../../../support/utils/stringTools'; describe('Data Import', () => { describe('Settings', () => { let user; - const mappingProfileName = `C402332 autotest mapping profile_${getRandomPostfix()}`; - const actionProfileName = `C402332 autotest action profile_${getRandomPostfix()}`; - const matchProfileName = `C402332 autotest match profile_${getRandomPostfix()}`; + const mappingProfile = { name: `C402332 autotest mapping profile_${getRandomPostfix()}` }; + const actionProfile = { + name: `C402332 autotest action profile_${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }; + const matchProfile = { + profileName: `C402332 autotest match profile_${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', + }; const jobProfileName = `C402332 autotest job profile ${getRandomPostfix()}`; before('Create test data and login', () => { cy.getAdminToken(); - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfileName).then( + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile).then( (mappingProfileResponse) => { NewActionProfile.createActionProfileViaApi( - actionProfileName, + actionProfile, mappingProfileResponse.body.id, ).then((actionProfileResponse) => { - NewMatchProfile.createMatchProfileViaApi(matchProfileName).then( - (matchProfileResponse) => { - NewJobProfile.createJobProfileViaApi( - jobProfileName, - matchProfileResponse.body.id, - actionProfileResponse.body.id, - ); - }, - ); + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi( + matchProfile, + ).then((matchProfileResponse) => { + NewJobProfile.createJobProfileWithLinkedMatchAndActionProfilesViaApi( + jobProfileName, + matchProfileResponse.body.id, + actionProfileResponse.body.id, + ); + }); }); }, ); @@ -60,9 +76,9 @@ describe('Data Import', () => { after('Delete test data', () => { cy.getAdminToken().then(() => { SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfileName); - SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfileName); - SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfileName); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfileName); + SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); + SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); Users.deleteViaApi(user.userId); }); }); @@ -72,21 +88,21 @@ describe('Data Import', () => { { tags: ['extendedPath', 'folijet'] }, () => { FieldMappingProfiles.checkListOfExistingProfilesIsDisplayed(); - FieldMappingProfiles.search(mappingProfileName); - FieldMappingProfileView.closeViewMode(mappingProfileName); - FieldMappingProfiles.verifySearchResult(mappingProfileName); + FieldMappingProfiles.search(mappingProfile.name); + FieldMappingProfileView.closeViewMode(mappingProfile.name); + FieldMappingProfiles.verifySearchResult(mappingProfile.name); cy.visit(SettingsMenu.actionProfilePath); ActionProfiles.checkListOfExistingProfilesIsDisplayed(); ActionProfiles.verifySearchFieldIsEmpty(); - ActionProfiles.search(actionProfileName); - ActionProfiles.verifySearchResult(actionProfileName); + ActionProfiles.search(actionProfile.name); + ActionProfiles.verifySearchResult(actionProfile.name); cy.visit(SettingsMenu.matchProfilePath); MatchProfiles.verifyListOfExistingProfilesIsDisplayed(); MatchProfiles.verifySearchFieldIsEmpty(); - MatchProfiles.search(matchProfileName); - MatchProfiles.verifySearchResult(matchProfileName); + MatchProfiles.search(matchProfile.profileName); + MatchProfiles.verifySearchResult(matchProfile.profileName); cy.visit(SettingsMenu.jobProfilePath); JobProfiles.checkListOfExistingProfilesIsDisplayed(); diff --git a/cypress/e2e/settings/data-import/field-mapping-profile-alphabetical-order.cy.js b/cypress/e2e/settings/data-import/field-mapping-profile-alphabetical-order.cy.js index e94fb24cd4..46ea2755fb 100644 --- a/cypress/e2e/settings/data-import/field-mapping-profile-alphabetical-order.cy.js +++ b/cypress/e2e/settings/data-import/field-mapping-profile-alphabetical-order.cy.js @@ -17,23 +17,18 @@ describe('Data Import', () => { mappingProfiles: [ { name: `A-C377046${getRandomPostfix()}`, - typeValue: FOLIO_RECORD_TYPE.INSTANCE, }, { name: `B-C377046${getRandomPostfix()}`, - typeValue: FOLIO_RECORD_TYPE.INSTANCE, }, { name: `C-C377046${getRandomPostfix()}`, - typeValue: FOLIO_RECORD_TYPE.INSTANCE, }, { name: `D-C377046${getRandomPostfix()}`, - typeValue: FOLIO_RECORD_TYPE.INSTANCE, }, { name: `Z-C377046${getRandomPostfix()}`, - typeValue: FOLIO_RECORD_TYPE.INSTANCE, }, ], @@ -46,7 +41,7 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); testData.mappingProfiles.forEach((mappingProfile) => { - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfile.name); + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile); }); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { diff --git a/cypress/e2e/settings/data-import/match-profile-update-options-for-holdings-incoming-records-in-edited.cy.js b/cypress/e2e/settings/data-import/match-profile-update-options-for-holdings-incoming-records-in-edited.cy.js index 47cc6c366e..c415e97124 100644 --- a/cypress/e2e/settings/data-import/match-profile-update-options-for-holdings-incoming-records-in-edited.cy.js +++ b/cypress/e2e/settings/data-import/match-profile-update-options-for-holdings-incoming-records-in-edited.cy.js @@ -33,7 +33,7 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/settings/data-import/match-profile-update-options-for-instance-incoming-records-in-edited.cy.js b/cypress/e2e/settings/data-import/match-profile-update-options-for-instance-incoming-records-in-edited.cy.js index 6530c23158..2ab39e8d82 100644 --- a/cypress/e2e/settings/data-import/match-profile-update-options-for-instance-incoming-records-in-edited.cy.js +++ b/cypress/e2e/settings/data-import/match-profile-update-options-for-instance-incoming-records-in-edited.cy.js @@ -33,7 +33,7 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/settings/data-import/match-profile-update-options-for-item-incoming-records-in-edited.cy.js b/cypress/e2e/settings/data-import/match-profile-update-options-for-item-incoming-records-in-edited.cy.js index 209a8eda33..63b8a5fae3 100644 --- a/cypress/e2e/settings/data-import/match-profile-update-options-for-item-incoming-records-in-edited.cy.js +++ b/cypress/e2e/settings/data-import/match-profile-update-options-for-item-incoming-records-in-edited.cy.js @@ -33,7 +33,7 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/settings/data-import/match-profile-update-options-for-marc-authority-incoming-records-in-edited.cy.js b/cypress/e2e/settings/data-import/match-profile-update-options-for-marc-authority-incoming-records-in-edited.cy.js index dd01d9fb4e..f87842cd0d 100644 --- a/cypress/e2e/settings/data-import/match-profile-update-options-for-marc-authority-incoming-records-in-edited.cy.js +++ b/cypress/e2e/settings/data-import/match-profile-update-options-for-marc-authority-incoming-records-in-edited.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import DataImport from '../../../support/fragments/data_import/dataImport'; import { MatchProfiles as SettingsMatchProfiles } from '../../../support/fragments/settings/dataImport'; @@ -30,12 +30,12 @@ describe('Data Import', () => { in2: 'f', subfield: 's', }, - recordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + recordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; before('Create test data and login', () => { cy.getAdminToken(); - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/settings/data-import/match-profile-update-options-for-marc-bibliographic-incoming-records-in-edited.cy.js b/cypress/e2e/settings/data-import/match-profile-update-options-for-marc-bibliographic-incoming-records-in-edited.cy.js index a56eb4630e..9361c7fc8e 100644 --- a/cypress/e2e/settings/data-import/match-profile-update-options-for-marc-bibliographic-incoming-records-in-edited.cy.js +++ b/cypress/e2e/settings/data-import/match-profile-update-options-for-marc-bibliographic-incoming-records-in-edited.cy.js @@ -33,7 +33,7 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/settings/data-import/mrc-import-for-update-instance-with-protected-fields-after-editing-marc-bib-in-quickMarc.cy.js b/cypress/e2e/settings/data-import/mrc-import-for-update-instance-with-protected-fields-after-editing-marc-bib-in-quickMarc.cy.js index bf22cb70c9..6758e13780 100644 --- a/cypress/e2e/settings/data-import/mrc-import-for-update-instance-with-protected-fields-after-editing-marc-bib-in-quickMarc.cy.js +++ b/cypress/e2e/settings/data-import/mrc-import-for-update-instance-with-protected-fields-after-editing-marc-bib-in-quickMarc.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, JOB_STATUS_NAMES, @@ -73,7 +73,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; const mappingProfile = { @@ -110,6 +110,7 @@ describe('Data Import', () => { }); after('Delete test data', () => { + FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); cy.getAdminToken().then(() => { MarcFieldProtection.getListViaApi({ query: `"data"=="${firstProtectedFieldsData.data}"`, @@ -126,7 +127,6 @@ describe('Data Import', () => { InventoryInstance.deleteInstanceViaApi(instance.id); }, ); - FileManager.deleteFile(`cypress/fixtures/${editedMarcFileName}`); SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.profileName); SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); diff --git a/cypress/e2e/settings/data-import/mrc-import-for-update-instance-with-protected-fields-after-editing-marc-bib-outside.cy.js b/cypress/e2e/settings/data-import/mrc-import-for-update-instance-with-protected-fields-after-editing-marc-bib-outside.cy.js index 59bff10c58..bbcfe0dbbb 100644 --- a/cypress/e2e/settings/data-import/mrc-import-for-update-instance-with-protected-fields-after-editing-marc-bib-outside.cy.js +++ b/cypress/e2e/settings/data-import/mrc-import-for-update-instance-with-protected-fields-after-editing-marc-bib-outside.cy.js @@ -2,7 +2,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, DEFAULT_JOB_PROFILE_NAMES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, RECORD_STATUSES, @@ -66,7 +66,7 @@ describe('Data Import', () => { field: '001', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.instanceHrid, }; const mappingProfile = { diff --git a/cypress/e2e/settings/data-import/no-duplicates-profiles-appears-in-job-profile-with-repeatable-profiles.cy.js b/cypress/e2e/settings/data-import/no-duplicates-profiles-appears-in-job-profile-with-repeatable-profiles.cy.js index a385c1ee71..e57f802307 100644 --- a/cypress/e2e/settings/data-import/no-duplicates-profiles-appears-in-job-profile-with-repeatable-profiles.cy.js +++ b/cypress/e2e/settings/data-import/no-duplicates-profiles-appears-in-job-profile-with-repeatable-profiles.cy.js @@ -1,7 +1,7 @@ import { ACCEPTED_DATA_TYPE_NAMES, ACTION_NAMES_IN_ACTION_PROFILE, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, } from '../../../support/constants'; @@ -68,7 +68,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.identifierOCLC, }, }, @@ -82,7 +82,7 @@ describe('Data Import', () => { subfield: 'z', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, instanceOption: NewMatchProfile.optionsList.identifierOCLC, }, }, @@ -92,7 +92,7 @@ describe('Data Import', () => { incomingStaticValue: 'Batch Loaded', incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, existingRecordOption: NewMatchProfile.optionsList.instanceStatusTerm, }, }, @@ -102,7 +102,7 @@ describe('Data Import', () => { incomingStaticValue: 'Electronic', incomingStaticRecordValue: 'Text', matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, existingRecordOption: NewMatchProfile.optionsList.holdingsType, }, }, diff --git a/cypress/e2e/settings/data-import/placing-of-action-profiles-in-edited-job-profile.cy.js b/cypress/e2e/settings/data-import/placing-of-action-profiles-in-edited-job-profile.cy.js index 208d8c5842..8997d8098f 100644 --- a/cypress/e2e/settings/data-import/placing-of-action-profiles-in-edited-job-profile.cy.js +++ b/cypress/e2e/settings/data-import/placing-of-action-profiles-in-edited-job-profile.cy.js @@ -1,4 +1,4 @@ -import { ACCEPTED_DATA_TYPE_NAMES } from '../../../support/constants'; +import { ACCEPTED_DATA_TYPE_NAMES, EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import NewActionProfile from '../../../support/fragments/data_import/action_profiles/newActionProfile'; import JobProfileEdit from '../../../support/fragments/data_import/job_profiles/jobProfileEdit'; @@ -42,7 +42,18 @@ describe('Data Import', () => { }, }, ]; - const matchProfileName = `C423385 match profile ${getRandomPostfix()}`; + const matchProfile = { + profileName: `C423385 match profile ${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', + }; const jobProfile = { profileName: `C423385 autotest job profile ${getRandomPostfix()}`, acceptedType: ACCEPTED_DATA_TYPE_NAMES.MARC, @@ -51,23 +62,23 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); - NewFieldMappingProfile.createMappingProfileViaApi( - collectionOfActionAndMappingProfiles[0].mappingProfile.name, + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + collectionOfActionAndMappingProfiles[0].mappingProfile, ).then((mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( collectionOfActionAndMappingProfiles[0].actionProfile, mappingProfileResponse.body.id, ); }); - NewFieldMappingProfile.createMappingProfileViaApi( - collectionOfActionAndMappingProfiles[1].mappingProfile.name, + NewFieldMappingProfile.createInstanceMappingProfileViaApi( + collectionOfActionAndMappingProfiles[1].mappingProfile, ).then((mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApiMarc( + NewActionProfile.createActionProfileViaApi( collectionOfActionAndMappingProfiles[1].actionProfile, mappingProfileResponse.body.id, ); }); - NewMatchProfile.createMatchProfileViaApi(matchProfileName); + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi(matchProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; @@ -79,7 +90,7 @@ describe('Data Import', () => { after('Delete test data', () => { cy.getAdminToken().then(() => { SettingsJobProfiles.deleteJobProfileByNameViaApi(jobProfile.profileName); - SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfileName); + SettingsMatchProfiles.deleteMatchProfileByNameViaApi(matchProfile.profileName); collectionOfActionAndMappingProfiles.forEach((profile) => { SettingsActionProfiles.deleteActionProfileByNameViaApi(profile.actionProfile.name); SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi( @@ -96,7 +107,7 @@ describe('Data Import', () => { () => { cy.visit(SettingsMenu.jobProfilePath); JobProfiles.createJobProfile(jobProfile); - NewJobProfile.linkMatchProfile(matchProfileName); + NewJobProfile.linkMatchProfile(matchProfile.profileName); NewJobProfile.linkActionProfileForMatches( collectionOfActionAndMappingProfiles[0].actionProfile.name, ); @@ -109,7 +120,7 @@ describe('Data Import', () => { JobProfileView.verifyJobProfileOpened(); JobProfileView.verifyLinkedProfiles( [ - matchProfileName, + matchProfile.profileName, collectionOfActionAndMappingProfiles[0].actionProfile.name, collectionOfActionAndMappingProfiles[1].actionProfile.name, ], @@ -129,7 +140,7 @@ describe('Data Import', () => { JobProfileEdit.saveAndClose(); JobProfileView.verifyLinkedProfiles( [ - matchProfileName, + matchProfile.profileName, collectionOfActionAndMappingProfiles[1].actionProfile.name, collectionOfActionAndMappingProfiles[0].actionProfile.name, ], diff --git a/cypress/e2e/settings/data-import/remove-default-action-profile.cy.js b/cypress/e2e/settings/data-import/remove-default-action-profile.cy.js index c739c6eca7..c42ca3f3bc 100644 --- a/cypress/e2e/settings/data-import/remove-default-action-profile.cy.js +++ b/cypress/e2e/settings/data-import/remove-default-action-profile.cy.js @@ -1,4 +1,4 @@ -import { DEFAULT_JOB_PROFILE_NAMES, EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { DEFAULT_JOB_PROFILE_NAMES, EXISTING_RECORD_NAMES } from '../../../support/constants'; import JobProfileEdit from '../../../support/fragments/data_import/job_profiles/jobProfileEdit'; import JobProfileView from '../../../support/fragments/data_import/job_profiles/jobProfileView'; import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles'; @@ -29,7 +29,7 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_AUTHORITY, + existingRecordType: EXISTING_RECORD_NAMES.MARC_AUTHORITY, }; before('Login', () => { diff --git a/cypress/e2e/settings/data-import/unlink-from-job-profile.cy.js b/cypress/e2e/settings/data-import/unlink-from-job-profile.cy.js index ecc833a17b..b3d14dc2e8 100644 --- a/cypress/e2e/settings/data-import/unlink-from-job-profile.cy.js +++ b/cypress/e2e/settings/data-import/unlink-from-job-profile.cy.js @@ -1,4 +1,8 @@ -import { ACCEPTED_DATA_TYPE_NAMES, FOLIO_RECORD_TYPE } from '../../../support/constants'; +import { + ACCEPTED_DATA_TYPE_NAMES, + FOLIO_RECORD_TYPE, + EXISTING_RECORD_NAMES, +} from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import ActionProfileView from '../../../support/fragments/data_import/action_profiles/actionProfileView'; import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles'; @@ -37,6 +41,15 @@ describe('Data Import', () => { ]; const matchProfile = { profileName: `C11116 autotest match profile ${getRandomPostfix()}`, + incomingRecordFields: { + field: '001', + in1: '', + in2: '', + subfield: '', + }, + recordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + existingMatchExpressionValue: 'instance.hrid', }; const mappingProfile = { name: `C11116 mapping profile ${getRandomPostfix()}`, @@ -52,8 +65,10 @@ describe('Data Import', () => { cy.login(userProperties.username, userProperties.password); - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfile.name); - NewMatchProfile.createMatchProfileViaApi(matchProfile.profileName); + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingMatchExpressionViaApi( + matchProfile, + ); }); }); diff --git a/cypress/e2e/settings/data-import/verify-the-action-profile-options.cy.js b/cypress/e2e/settings/data-import/verify-the-action-profile-options.cy.js index 6b985a3865..42728aa5ac 100644 --- a/cypress/e2e/settings/data-import/verify-the-action-profile-options.cy.js +++ b/cypress/e2e/settings/data-import/verify-the-action-profile-options.cy.js @@ -17,17 +17,20 @@ describe('Data Import', () => { describe('Settings', () => { let user; - const mappingProfileName = `C421995 mapping profile${getRandomPostfix()}`; - const actionProfileName = `C421995 action profile${getRandomPostfix()}`; + const mappingProfile = { + name: `C421995 mapping profile${getRandomPostfix()}`, + }; + const actionProfile = { + name: `C421995 action profile${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }; before('Create test data and login', () => { cy.getAdminToken(); - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfileName).then( + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApi( - actionProfileName, - mappingProfileResponse.body.id, - ); + NewActionProfile.createActionProfileViaApi(actionProfile, mappingProfileResponse.body.id); }, ); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { @@ -40,8 +43,8 @@ describe('Data Import', () => { after('Delete test data', () => { cy.getAdminToken(); - SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfileName); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfileName); + SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); Users.deleteViaApi(user.userId); }); @@ -61,8 +64,8 @@ describe('Data Import', () => { }); NewActionProfile.clickClose(); - ActionProfiles.search(actionProfileName); - ActionProfiles.verifyActionProfileOpened(actionProfileName); + ActionProfiles.search(actionProfile.name); + ActionProfiles.verifyActionProfileOpened(actionProfile.name); ActionProfileView.edit(); ActionProfileEdit.changeAction(actionCreate); diff --git a/cypress/e2e/settings/data-import/verify-the-mapping-profile-options.cy.js b/cypress/e2e/settings/data-import/verify-the-mapping-profile-options.cy.js index a53b4d5bcb..73a158f9c0 100644 --- a/cypress/e2e/settings/data-import/verify-the-mapping-profile-options.cy.js +++ b/cypress/e2e/settings/data-import/verify-the-mapping-profile-options.cy.js @@ -16,8 +16,14 @@ describe('Data Import', () => { describe('Settings', () => { let user; - const mappingProfileName = `mapping_${getRandomPostfix()}`; - const actionProfileName = `action_${getRandomPostfix()}`; + const mappingProfile = { + name: `C421998 mapping profile_${getRandomPostfix()}`, + }; + const actionProfile = { + name: `C421998 action_${getRandomPostfix()}`, + action: 'CREATE', + folioRecordType: 'INSTANCE', + }; const FOLIORecordTypes = [ 'Instance', 'Holdings', @@ -31,12 +37,9 @@ describe('Data Import', () => { before('Create test data and login', () => { cy.getAdminToken(); - NewFieldMappingProfile.createMappingProfileViaApi(mappingProfileName).then( + NewFieldMappingProfile.createInstanceMappingProfileViaApi(mappingProfile).then( (mappingProfileResponse) => { - NewActionProfile.createActionProfileViaApi( - actionProfileName, - mappingProfileResponse.body.id, - ); + NewActionProfile.createActionProfileViaApi(actionProfile, mappingProfileResponse.body.id); }, ); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { @@ -48,8 +51,8 @@ describe('Data Import', () => { after('Delete test data', () => { cy.getAdminToken(); - SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfileName); - SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfileName); + SettingsActionProfiles.deleteActionProfileByNameViaApi(actionProfile.name); + SettingsFieldMappingProfiles.deleteMappingProfileByNameViaApi(mappingProfile.name); Users.deleteViaApi(user.userId); }); @@ -66,9 +69,9 @@ describe('Data Import', () => { }); NewFieldMappingProfile.clickClose(); - FieldMappingProfiles.search(mappingProfileName); + FieldMappingProfiles.search(mappingProfile.name); FieldMappingProfileView.edit(); - FieldMappingProfileEdit.verifyScreenName(mappingProfileName); + FieldMappingProfileEdit.verifyScreenName(mappingProfile.name); FOLIORecordTypes.forEach((type) => { FieldMappingProfileEdit.verifyFOLIORecordTypeOptionExists(type); diff --git a/cypress/e2e/settings/data-import/verify-the-match-profile-options.cy.js b/cypress/e2e/settings/data-import/verify-the-match-profile-options.cy.js index 9e57601851..9b54c19fff 100644 --- a/cypress/e2e/settings/data-import/verify-the-match-profile-options.cy.js +++ b/cypress/e2e/settings/data-import/verify-the-match-profile-options.cy.js @@ -1,4 +1,4 @@ -import { EXISTING_RECORDS_NAMES } from '../../../support/constants'; +import { EXISTING_RECORD_NAMES } from '../../../support/constants'; import { Permissions } from '../../../support/dictionary'; import { MatchProfiles as SettingsMatchProfiles } from '../../../support/fragments/settings/dataImport'; import MatchProfileView from '../../../support/fragments/settings/dataImport/matchProfiles/matchProfileView'; @@ -23,13 +23,13 @@ describe('Data Import', () => { subfield: 'a', }, matchCriterion: 'Exactly matches', - existingRecordType: EXISTING_RECORDS_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, }; const recordItems = ['INSTANCE', 'HOLDINGS', 'ITEM', 'MARC_BIBLIOGRAPHIC', 'MARC_AUTHORITY']; before('Create test data and login', () => { cy.getAdminToken(); - NewMatchProfile.createMatchProfileViaApiMarc(matchProfile); + NewMatchProfile.createMatchProfileWithIncomingAndExistingRecordsViaApi(matchProfile); cy.createTempUser([Permissions.settingsDataImportEnabled.gui]).then((userProperties) => { user = userProperties; diff --git a/cypress/e2e/staff-slips/hold-slip.cy.js b/cypress/e2e/staff-slips/hold-slip.cy.js index 4146952cf7..4f32b9fa3c 100644 --- a/cypress/e2e/staff-slips/hold-slip.cy.js +++ b/cypress/e2e/staff-slips/hold-slip.cy.js @@ -156,7 +156,9 @@ describe('Check In - Actions', () => { RequestPolicy.deleteViaApi(requestPolicyBody.id); CirculationRules.deleteRuleViaApi(testData.addedRule); UserEdit.changeServicePointPreferenceViaApi(userData.userId, [testData.userServicePoint.id]); - UserEdit.changeServicePointPreferenceViaApi(requestUserData.userId, [testData.userServicePoint.id]); + UserEdit.changeServicePointPreferenceViaApi(requestUserData.userId, [ + testData.userServicePoint.id, + ]); ServicePoints.deleteViaApi(testData.userServicePoint.id); Requests.getRequestApi({ query: `(item.barcode=="${itemData.barcode}")` }).then( (requestResponse) => { diff --git a/cypress/fixtures/marcBibFileForC430257.mrc b/cypress/fixtures/marcBibFileForC430257.mrc new file mode 100644 index 0000000000..adff181bfa --- /dev/null +++ b/cypress/fixtures/marcBibFileForC430257.mrc @@ -0,0 +1 @@ +01240cas a2200397 450000100070000000500170000700800410002401000170006502200140008203500260009603500220012203500110014403500190015504000440017405000150021808200110023322200420024424500430028626000470032926500380037630000150041431000220042932100250045136200230047657000290049965000330052865000450056165500420060670000450064885300180069386300230071190200160073490500210075094800370077195000340080836683220141106221425.0750907c19509999enkqr p 0 a0eng d a 58020553  a0022-0469 a(CStRLIN)NYCX1604275S a(NIC)notisABP6388 a366832 a(OCoLC)1604275 dCtYdMBTIdCtYdMBTIdNICdCStRLINdNIC0 aBR140b.J6 a270.0504aThe Journal of ecclesiastical history04aThe Journal of ecclesiastical history. aLondon,bCambridge University Press [etc.] a32 East 57th St., New York, 10022 av.b25 cm. aQuarterly,b1970- aSemiannual,b1950-690 av. 1- Apr. 1950- aEditor: C. W. Dugmore. 0aChurch historyxPeriodicals. 7aChurch history2fast0(OCoLC)fst00860740 7aPeriodicals2fast0(OCoLC)fst014116411 aDugmore, C. W.q(Clifford William),eed.0381av.i(year)4081a1-49i1950-1998 apfndbLintz a19890510120000.02 a20141106bmdbatcheltsxaddfast lOLINaBR140b.J86h01/01/01 N \ No newline at end of file diff --git a/cypress/fixtures/marcBibFileForC430257_1.mrc b/cypress/fixtures/marcBibFileForC430257_1.mrc new file mode 100644 index 0000000000..4dea6c7319 --- /dev/null +++ b/cypress/fixtures/marcBibFileForC430257_1.mrc @@ -0,0 +1 @@ +01884ckm a2200457 i 4500001000800000005001700008007000700025008004100032020004100073020004100114020004700155035002100202035001500223035001200238040002300250050002200273245004300295246003600338246001500374264006000389264001100449300008500460336002100545337002500566338002100591505014200612650004400754650004600798650004900844650005100893650005500944650004600999655006001045655004301105710005901148710003501207902003001242948002701272948002701299980010001326972922920170224085409.0ko ao 150919t20142014njunnn oneng d a9781119056348q(flashcards : part 1) a9781119056836q(flashcards : part 2) a9781119056775q(flashcards : complete set) a(OCoLC)966701167 a(POOF)1790 a9729229 aNICbengerdacNIC 4aHF5661b.W55 201400aWiley CMAexcel exam review flashcards.30aCMAexcel exam review flashcards30aFlashcards 1aHoboken, New Jersey :bJohn Wiley & Sons Inc.,c[2014?] 4c©2014 a521 flash cards ;ceach 8 x 13 cm, in containers 9 x 14 x 9 cm and 9 x 14 x 6 cm atext2rdacontent aunmediated2rdamedia acard2rdacarrier0 apart 1. Financial reporting, planning, performance, and control (330 flash cards) -- part 2. Financial decision making (191 flash cards). 0aAccountingxExaminationsvStudy guides. 0aAccountingvExaminations, questions, etc. 0aDecision makingxExaminationsvStudy guides. 0aDecision makingvExaminations, questions, etc. 7aAccountingxExaminations2fast0(OCoLC)fst00795415 7aDecision making2fast0(OCoLC)fst00889035 7aExaminations, questions, etc.2fast0(OCoLC)fst01423780 7aStudy guides2fast0(OCoLC)fst014238882 aInstitute of Management Accountants,esponsoring body.2 aJohn Wiley & Sons,epublisher. apfndbHughes, Paul & Rosa0 a20161220brdty15elts1 a20161220bodstr1elts ysfk23@cornell.edu:g1hp6592zPOOF;http://poof2.library.cornell.edu/orders/1790;CornellvAMAZON \ No newline at end of file diff --git a/cypress/support/api/data-import.js b/cypress/support/api/data-import.js index 665912ced7..b696ce7677 100644 --- a/cypress/support/api/data-import.js +++ b/cypress/support/api/data-import.js @@ -117,6 +117,7 @@ Cypress.Commands.add('createLinkedProfiles', (testData) => { }); }); +// TODO redesign Cypress.Commands.add('createOnePairMappingAndActionProfiles', (mappingProfile, actionProfile) => { FieldMappingProfiles.createMappingProfileViaApi(mappingProfile).then((bodyWithMappingProfile) => { actionProfile.addedRelations[0].detailProfileId = bodyWithMappingProfile.body.id; diff --git a/cypress/support/constants.js b/cypress/support/constants.js index 912a16293f..46e8802a51 100644 --- a/cypress/support/constants.js +++ b/cypress/support/constants.js @@ -295,7 +295,7 @@ export const PROFILE_TYPE_NAMES = { MAPPING_PROFILE: 'MAPPING_PROFILE', }; -export const EXISTING_RECORDS_NAMES = { +export const EXISTING_RECORD_NAMES = { INSTANCE: 'INSTANCE', HOLDINGS: 'HOLDINGS', ITEM: 'ITEM', @@ -303,6 +303,10 @@ export const EXISTING_RECORDS_NAMES = { MARC_AUTHORITY: 'MARC_AUTHORITY', }; +export const INCOMING_RECORD_NAMES = { + MARC_BIBLIOGRAPHIC: 'MARC_BIBLIOGRAPHIC', +}; + export const JOB_STATUS_NAMES = { COMPLETED: 'Completed', COMPLETED_WITH_ERRORS: 'Completed with errors', diff --git a/cypress/support/fragments/data_import/action_profiles/actionProfileView.js b/cypress/support/fragments/data_import/action_profiles/actionProfileView.js index 243090aeda..d2e5845f9b 100644 --- a/cypress/support/fragments/data_import/action_profiles/actionProfileView.js +++ b/cypress/support/fragments/data_import/action_profiles/actionProfileView.js @@ -62,7 +62,10 @@ export default { cy.expect(resultsPane.exists()); cy.expect(viewPane.exists()); }, - verifyActionProfileTitleName: (profileName) => cy.get('#view-action-profile-pane-content h2').should('have.text', profileName), + verifyActionProfileTitleName: (profileName) => { + cy.expect(viewPane.exists()); + cy.get('#view-action-profile-pane-content h2').should('have.text', profileName); + }, verifyAction: () => cy.expect(KeyValue('Action').has({ value: 'Update' })), closeViewModeForMatchProfile: () => cy.do(viewPane.find(Button({ icon: 'times' })).click()), verifyActionMenuAbsent: () => cy.expect(resultsPane.find(actionsButton).absent()), diff --git a/cypress/support/fragments/data_import/action_profiles/newActionProfile.js b/cypress/support/fragments/data_import/action_profiles/newActionProfile.js index 40cdc996af..8c5ea831af 100644 --- a/cypress/support/fragments/data_import/action_profiles/newActionProfile.js +++ b/cypress/support/fragments/data_import/action_profiles/newActionProfile.js @@ -29,72 +29,11 @@ const defaultActionProfile = { name: 'autotest action profile', typeValue: FOLIO_RECORD_TYPE.INSTANCE, }; -const getDefaultInstanceActionProfile = (name) => { - const defaultInstanceActionProfile = { - profile: { - name, - action: 'CREATE', - folioRecord: 'INSTANCE', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }; - return defaultInstanceActionProfile; -}; -const getDefaultHoldingsActionProfile = (name) => { - const defaultHoldingsActionProfile = { - profile: { - name, - action: 'CREATE', - folioRecord: 'HOLDINGS', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }; - return defaultHoldingsActionProfile; -}; -const getDefaultItemActionProfile = (name) => { - const defaultItemActionProfile = { - profile: { - name, - action: 'CREATE', - folioRecord: 'ITEM', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: '', - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }; - return defaultItemActionProfile; -}; - const clickLinkProfileButton = () => { cy.do(profileLinkButton.click()); }; export default { - getDefaultInstanceActionProfile, - getDefaultHoldingsActionProfile, - getDefaultItemActionProfile, clickLinkProfileButton, fill: (specialActionProfile = defaultActionProfile) => { cy.do([ @@ -125,35 +64,7 @@ export default { cy.expect(Pane('Action profiles').find(Button('Actions')).exists()); }, - createActionProfileViaApi: (nameMapProfile, mapProfileId, profileAction = 'CREATE') => { - return cy - .okapiRequest({ - method: 'POST', - path: 'data-import-profiles/actionProfiles', - body: { - profile: { - name: nameMapProfile, - action: profileAction, - folioRecord: 'INSTANCE', - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: mapProfileId, - detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, - }, - ], - deletedRelations: [], - }, - isDefaultSearchParamsRequired: false, - }) - .then(({ response }) => { - return response; - }); - }, - - createActionProfileViaApiMarc: (profile, mapProfileId) => { + createActionProfileViaApi: (profile, mappingProfileId) => { return cy .okapiRequest({ method: 'POST', @@ -168,7 +79,7 @@ export default { { masterProfileId: null, masterProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - detailProfileId: mapProfileId, + detailProfileId: mappingProfileId, detailProfileType: PROFILE_TYPE_NAMES.MAPPING_PROFILE, }, ], diff --git a/cypress/support/fragments/data_import/job_profiles/newJobProfile.js b/cypress/support/fragments/data_import/job_profiles/newJobProfile.js index cb82486703..c13ce17915 100644 --- a/cypress/support/fragments/data_import/job_profiles/newJobProfile.js +++ b/cypress/support/fragments/data_import/job_profiles/newJobProfile.js @@ -2,15 +2,15 @@ import { HTML, including } from '@interactors/html'; import { Accordion, Button, - Select, - TextField, - Pane, - TextArea, Callout, Modal, + Pane, + Select, + TextArea, + TextField, } from '../../../../../interactors'; -import ModalSelectProfile from './modalSelectProfile'; import { ACCEPTED_DATA_TYPE_NAMES, PROFILE_TYPE_NAMES } from '../../../constants'; +import ModalSelectProfile from './modalSelectProfile'; const actionsButton = Button('Action'); const matchButton = Button('Match'); @@ -299,37 +299,6 @@ export default { cy.expect(saveAndCloseButton.absent()); }, - createJobProfileViaApi: (nameProfile, matchProfileId, actProfileId) => { - return cy.okapiRequest({ - method: 'POST', - path: 'data-import-profiles/jobProfiles', - body: { - profile: { - name: nameProfile, - dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, - }, - addedRelations: [ - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.JOB_PROFILE, - detailProfileId: matchProfileId, - detailProfileType: PROFILE_TYPE_NAMES.MATCH_PROFILE, - order: 0, - }, - { - masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.JOB_PROFILE, - detailProfileId: actProfileId, - detailProfileType: PROFILE_TYPE_NAMES.ACTION_PROFILE, - order: 1, - }, - ], - deletedRelations: [], - }, - isDefaultSearchParamsRequired: false, - }); - }, - createJobProfileWithLinkedActionProfileViaApi: (nameProfile, actProfileId) => { return cy .okapiRequest({ @@ -358,24 +327,39 @@ export default { }); }, - createJobProfileWithLinkedMatchProfileViaApi: (nameProfile, matchProfileId) => { + createJobProfileWithLinkedTwoActionProfilesViaApi: ( + profile, + actionProfileId1, + actionProfileId2, + ) => { return cy .okapiRequest({ method: 'POST', path: 'data-import-profiles/jobProfiles', body: { profile: { - name: nameProfile, - dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, + dataType: 'MARC', + name: profile.name, }, addedRelations: [ { masterProfileId: null, - masterProfileType: PROFILE_TYPE_NAMES.JOB_PROFILE, - detailProfileId: matchProfileId, - detailProfileType: PROFILE_TYPE_NAMES.MATCH_PROFILE, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId1, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', order: 0, }, + { + masterProfileId: null, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId2, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', + order: 1, + }, ], deletedRelations: [], }, @@ -387,7 +371,7 @@ export default { }, createJobProfileWithLinkedMatchAndActionProfilesViaApi: ( - nameProfile, + profileName, matchProfileId, actionProfileId, ) => { @@ -397,7 +381,7 @@ export default { path: 'data-import-profiles/jobProfiles', body: { profile: { - name: nameProfile, + name: profileName, dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, }, addedRelations: [ @@ -430,6 +414,150 @@ export default { }); }, + createJobProfileWithLinkedThreeActionProfilesViaApi: ( + profile, + actionProfileId1, + actionProfileId2, + actionProfileId3, + ) => { + return cy + .okapiRequest({ + method: 'POST', + path: 'data-import-profiles/jobProfiles', + body: { + profile: { + dataType: 'MARC', + name: profile.name, + }, + addedRelations: [ + { + masterProfileId: null, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId1, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', + order: 0, + }, + { + masterProfileId: null, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId2, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', + order: 1, + }, + { + masterProfileId: null, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId3, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', + order: 2, + }, + ], + deletedRelations: [], + }, + isDefaultSearchParamsRequired: false, + }) + .then((responce) => { + return responce.body.id; + }); + }, + + createJobProfileWithLinkedFourActionProfilesViaApi: ( + profile, + actionProfileId1, + actionProfileId2, + actionProfileId3, + actionProfileId4, + ) => { + return cy + .okapiRequest({ + method: 'POST', + path: 'data-import-profiles/jobProfiles', + body: { + profile: { + dataType: 'MARC', + name: profile.name, + }, + addedRelations: [ + { + masterProfileId: null, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId1, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', + order: 0, + }, + { + masterProfileId: null, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId2, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', + order: 1, + }, + { + masterProfileId: null, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId3, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', + order: 2, + }, + { + masterProfileId: null, + masterWrapperId: null, + masterProfileType: 'JOB_PROFILE', + detailProfileId: actionProfileId4, + detailWrapperId: null, + detailProfileType: 'ACTION_PROFILE', + order: 3, + }, + ], + deletedRelations: [], + }, + isDefaultSearchParamsRequired: false, + }) + .then((responce) => { + return responce.body.id; + }); + }, + + createJobProfileWithLinkedMatchProfileViaApi: (nameProfile, matchProfileId) => { + return cy + .okapiRequest({ + method: 'POST', + path: 'data-import-profiles/jobProfiles', + body: { + profile: { + name: nameProfile, + dataType: ACCEPTED_DATA_TYPE_NAMES.MARC, + }, + addedRelations: [ + { + masterProfileId: null, + masterProfileType: PROFILE_TYPE_NAMES.JOB_PROFILE, + detailProfileId: matchProfileId, + detailProfileType: PROFILE_TYPE_NAMES.MATCH_PROFILE, + order: 0, + }, + ], + deletedRelations: [], + }, + isDefaultSearchParamsRequired: false, + }) + .then((responce) => { + return responce.body.id; + }); + }, + createJobProfileWithoutLinkedProfilesViaApi: (nameProfile) => { return cy .okapiRequest({ diff --git a/cypress/support/fragments/data_import/mapping_profiles/newFieldMappingProfile.js b/cypress/support/fragments/data_import/mapping_profiles/newFieldMappingProfile.js index b4251667fd..203643b7f3 100644 --- a/cypress/support/fragments/data_import/mapping_profiles/newFieldMappingProfile.js +++ b/cypress/support/fragments/data_import/mapping_profiles/newFieldMappingProfile.js @@ -25,9 +25,11 @@ import { } from '../../../../../interactors'; import { ACQUISITION_METHOD_NAMES_IN_MAPPING_PROFILES, - EXISTING_RECORDS_NAMES, + EXISTING_RECORD_NAMES, FOLIO_RECORD_TYPE, INSTANCE_STATUS_TERM_NAMES, + INCOMING_RECORD_NAMES, + LOCATION_NAMES, } from '../../../constants'; import getRandomPostfix from '../../../utils/stringTools'; @@ -115,7 +117,6 @@ const actionsFieldMappingsForMarc = { update: 'Updates', }; -const permanentLocation = '"Annex (KU/CC/DI/A)"'; const materialType = '"book"'; const permanentLoanType = '"Can circulate"'; const status = '"In process"'; @@ -125,7 +126,7 @@ const catalogedDate = '###TODAY###'; const defaultMappingProfile = { name: `autotest${FOLIO_RECORD_TYPE.INSTANCE}${getRandomPostfix()}`, typeValue: FOLIO_RECORD_TYPE.INSTANCE, - location: permanentLocation, + location: `"${LOCATION_NAMES.ANNEX_UI}"`, material: materialType, loan: permanentLoanType, statusField: status, @@ -273,76 +274,6 @@ const fillSummaryForMarcAuthInMappingProfile = (specialMappingProfile = defaultM const fillFolioRecordType = (profile) => { cy.do(existingRecordType.choose(profile.typeValue)); }; -const getDefaultInstanceMappingProfile = (name) => { - const defaultInstanceMappingProfile = { - profile: { - name, - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, - }, - }; - return defaultInstanceMappingProfile; -}; -const getDefaultHoldingsMappingProfile = (name, permLocation) => { - const defaultHoldingsMappingProfile = { - profile: { - name, - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - existingRecordType: EXISTING_RECORDS_NAMES.HOLDINGS, - mappingDetails: { - name: 'holdings', - recordType: 'HOLDINGS', - mappingFields: [ - { - name: 'permanentLocationId', - enabled: true, - path: 'holdings.permanentLocationId', - value: `"${permLocation}"`, - }, - ], - }, - }, - }; - return defaultHoldingsMappingProfile; -}; -const getDefaultItemMappingProfile = (name) => { - const defaultItemMappingProfile = { - profile: { - name, - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - existingRecordType: EXISTING_RECORDS_NAMES.ITEM, - mappingDetails: { - name: 'item', - recordType: 'ITEM', - mappingFields: [ - { - name: 'materialType.id', - enabled: true, - path: 'item.materialType.id', - value: '"book"', - acceptedValues: { '1a54b431-2e4f-452d-9cae-9cee66c9a892': 'book' }, - }, - { - name: 'permanentLoanType.id', - enabled: true, - path: 'item.permanentLoanType.id', - value: '"Can circulate"', - acceptedValues: { '2b94c631-fca9-4892-a730-03ee529ffe27': 'Can circulate' }, - }, - { name: 'status.name', enabled: true, path: 'item.status.name', value: '"Available"' }, - { - name: 'permanentLocation.id', - enabled: 'true', - path: 'item.permanentLocation.id', - value: `"${permanentLocation}"`, - acceptedValues: { 'fcd64ce1-6995-48f0-840e-89ffa2288371': 'Main Library (KU/CC/DI/M)' }, - }, - ], - }, - }, - }; - return defaultItemMappingProfile; -}; const fillInvoiceLineDescription = (description) => { cy.do(Accordion('Invoice line information').find(TextField('Description*')).fillIn(description)); }; @@ -396,11 +327,7 @@ const addItemNotes = (noteType, note, staffOnly) => { }; export default { - getDefaultInstanceMappingProfile, - getDefaultHoldingsMappingProfile, - getDefaultItemMappingProfile, incomingRecordType, - permanentLocation, materialType, permanentLoanType, statusField: status, @@ -1156,17 +1083,170 @@ export default { cy.wait(2000); }, - createMappingProfileViaApi: (nameProfile) => { + createModifyMarcBibMappingProfileViaApi: (profile) => { return cy .okapiRequest({ method: 'POST', path: 'data-import-profiles/mappingProfiles', body: { profile: { - name: nameProfile, - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, + name: profile.name, + incomingRecordType: INCOMING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + mappingDetails: { + name: 'marcBib', + recordType: 'MARC_BIBLIOGRAPHIC', + marcMappingDetails: [ + { + order: 0, + field: { + subfields: [ + { + subaction: null, + data: { + text: profile.updatingText, + }, + subfield: profile.subfield, + }, + ], + field: profile.fieldNumber, + indicator2: profile.indicator2, + }, + action: 'ADD', + }, + ], + marcMappingOption: 'MODIFY', + }, + }, + addedRelations: [], + deletedRelations: [], + }, + isDefaultSearchParamsRequired: false, + }) + .then(({ response }) => { + return response; + }); + }, + + createInstanceMappingProfileViaApi: (profile) => { + return cy + .okapiRequest({ + method: 'POST', + path: 'data-import-profiles/mappingProfiles', + body: { + profile: { + name: profile.name, + incomingRecordType: INCOMING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.INSTANCE, + }, + }, + isDefaultSearchParamsRequired: false, + }) + .then(({ response }) => { + return response; + }); + }, + + createHoldingsMappingProfileViaApi: (profile) => { + // eslint-disable-next-line no-unused-vars + let locationId; + + if (profile.permanentLocation === LOCATION_NAMES.MAIN_LIBRARY_UI) { + cy.getLocations({ query: `name="${LOCATION_NAMES.MAIN_LIBRARY}"` }).then((res) => { + locationId = res.id; + }); + } + if (profile.permanentLocation === LOCATION_NAMES.ANNEX_UI) { + cy.getLocations({ query: `name="${LOCATION_NAMES.ANNEX}"` }).then((res) => { + locationId = res.id; + }); + } + if (profile.permanentLocation === LOCATION_NAMES.ONLINE_UI) { + cy.getLocations({ query: `name="${LOCATION_NAMES.ONLINE}"` }).then((res) => { + locationId = res.id; + }); + } + + return cy + .okapiRequest({ + method: 'POST', + path: 'data-import-profiles/mappingProfiles', + body: { + profile: { + name: profile.name, + incomingRecordType: INCOMING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.HOLDINGS, + mappingDetails: { + name: 'holdings', + recordType: 'HOLDINGS', + mappingFields: [ + { + name: 'permanentLocationId', + enabled: true, + path: 'holdings.permanentLocationId', + value: `"${profile.permanentLocation}"`, + subfields: [], + acceptedValues: { + locationId: profile.permanentLocation, + }, + }, + ], + }, + }, + addedRelations: [], + deletedRelations: [], + }, + isDefaultSearchParamsRequired: false, + }) + .then(({ response }) => { + return response; + }); + }, + + createItemMappingProfileViaApi: (profile) => { + return cy + .okapiRequest({ + method: 'POST', + path: 'data-import-profiles/mappingProfiles', + body: { + profile: { + name: profile.name, + incomingRecordType: INCOMING_RECORD_NAMES.MARC_BIBLIOGRAPHIC, + existingRecordType: EXISTING_RECORD_NAMES.ITEM, + mappingDetails: { + name: 'item', + recordType: 'ITEM', + mappingFields: [ + { + name: 'materialType.id', + enabled: true, + path: 'item.materialType.id', + value: `"${profile.materialType}"`, + subfields: [], + acceptedValues: { '1a54b431-2e4f-452d-9cae-9cee66c9a892': profile.materialType }, + }, + { + name: 'permanentLoanType.id', + enabled: true, + path: 'item.permanentLoanType.id', + value: `"${profile.permanentLoanType}"`, + subfields: [], + acceptedValues: { + '2b94c631-fca9-4892-a730-03ee529ffe27': profile.permanentLoanType, + }, + }, + { + name: 'status.name', + enabled: true, + path: 'item.status.name', + value: `"${profile.status}"`, + subfields: [], + }, + ], + }, }, + addedRelations: [], + deletedRelations: [], }, isDefaultSearchParamsRequired: false, }) diff --git a/cypress/support/fragments/orders/orderLines.js b/cypress/support/fragments/orders/orderLines.js index 0b03390711..589e2132f7 100644 --- a/cypress/support/fragments/orders/orderLines.js +++ b/cypress/support/fragments/orders/orderLines.js @@ -110,6 +110,7 @@ const lineDetails = Section({ id: 'lineDetails' }); const poLineDetails = { receiptStatus: lineDetails.find(Select('Receipt status')), }; +const selectLocationsModal = Modal('Select locations'); const submitOrderLine = () => { cy.wait(4000); @@ -143,6 +144,10 @@ const expandActionsDropdownInPOL = () => { }; export default { + checkExistingPOLInOrderLinesList: (POL) => { + cy.wait(4000); + cy.expect(searchResultsPane.find(MultiColumnListCell(POL)).exists()); + }, submitOrderLine, checkQuantityPhysical, checkQuantityElectronic, @@ -157,10 +162,12 @@ export default { cy.do([orderLineButton.click()]); }, waitLoading() { + cy.wait(6000); cy.expect([ Pane({ id: 'order-lines-filters-pane' }).exists(), Pane({ id: 'order-lines-results-pane' }).exists(), ]); + cy.wait(4000); }, selectFund: (fundName) => { @@ -170,6 +177,7 @@ export default { }, resetFilters: () => { + cy.wait(4000); cy.do(filtersPane.find(Button('Reset all')).click()); }, @@ -2311,4 +2319,22 @@ export default { cy.do(Button('Title look-up').click()); SelectInstanceModal.waitLoading(); }, + + selectLocationInFilters: (locationName) => { + cy.wait(4000); + cy.do([ + Button({ id: 'accordion-toggle-button-pol-location-filter' }).click(), + Button('Location look-up').click(), + selectLocationsModal.find(SearchField({ id: 'input-record-search' })).fillIn(locationName), + Button('Search').click(), + ]); + cy.wait(2000); + cy.do([ + selectLocationsModal.find(Checkbox({ ariaLabel: 'Select all' })).click(), + selectLocationsModal.find(Button('Save')).click(), + ]); + }, + selectOrders: () => { + cy.do(Section({ id: 'order-lines-filters-pane' }).find(Button('Orders')).click()); + }, }; diff --git a/cypress/support/fragments/orders/orders.js b/cypress/support/fragments/orders/orders.js index 031ad62d36..da194c11f1 100644 --- a/cypress/support/fragments/orders/orders.js +++ b/cypress/support/fragments/orders/orders.js @@ -68,6 +68,7 @@ const expandActionsDropdown = () => { ); }; const selectOrganizationModal = Modal('Select Organization'); +const selectLocationsModal = Modal('Select locations'); export default { searchByParameter(parameter, value) { @@ -901,4 +902,23 @@ export default { ]); cy.expect(MultiColumnListCell(organization.name).absent()); }, + selectLocationInFilters: (locationName) => { + cy.wait(4000); + cy.do([ + Button({ id: 'accordion-toggle-button-filter-poLine.locations' }).click(), + Button('Location look-up').click(), + selectLocationsModal.find(SearchField({ id: 'input-record-search' })).fillIn(locationName), + Button('Search').click(), + ]); + cy.wait(2000); + cy.do([ + selectLocationsModal.find(Checkbox({ ariaLabel: 'Select all' })).click(), + selectLocationsModal.find(Button('Save')).click(), + ]); + }, + + checkExistingPOInOrdersList: (POL) => { + cy.wait(4000); + cy.expect(ordersResultsPane.find(MultiColumnListCell(POL)).exists()); + }, }; diff --git a/cypress/support/fragments/settings/dataImport/matchProfiles/matchProfiles.js b/cypress/support/fragments/settings/dataImport/matchProfiles/matchProfiles.js index a739303f47..93bd77a6ef 100644 --- a/cypress/support/fragments/settings/dataImport/matchProfiles/matchProfiles.js +++ b/cypress/support/fragments/settings/dataImport/matchProfiles/matchProfiles.js @@ -11,7 +11,6 @@ import { import ResultsPane from '../resultsPane'; import MatchProfileEditForm from './matchProfileEditForm'; import NewMatchProfile from './newMatchProfile'; -import getRandomPostfix from '../../../../utils/stringTools'; const actionsButton = Button('Actions'); const viewPane = Pane({ id: 'view-match-profile-pane' }); @@ -27,68 +26,6 @@ const search = (profileName) => { cy.do(Pane('Match profiles').find(Button('Search')).click()); }; -const marcAuthorityMatchBy010TagProfile = { - profile: { - name: `Update MARC authority record - Match Profile 010 $a${getRandomPostfix()}`, - description: '', - incomingRecordType: 'MARC_AUTHORITY', - matchDetails: [ - { - incomingRecordType: 'MARC_AUTHORITY', - incomingMatchExpression: { - fields: [ - { - label: 'field', - value: '010', - }, - { - label: 'indicator1', - value: '', - }, - { - label: 'indicator2', - value: '', - }, - { - label: 'recordSubfield', - value: 'a', - }, - ], - staticValueDetails: null, - dataValueType: 'VALUE_FROM_RECORD', - }, - existingRecordType: 'MARC_AUTHORITY', - existingMatchExpression: { - fields: [ - { - label: 'field', - value: '010', - }, - { - label: 'indicator1', - value: '', - }, - { - label: 'indicator2', - value: '', - }, - { - label: 'recordSubfield', - value: 'a', - }, - ], - staticValueDetails: null, - dataValueType: 'VALUE_FROM_RECORD', - }, - matchCriterion: 'EXACTLY_MATCHES', - }, - ], - existingRecordType: 'MARC_AUTHORITY', - }, - addedRelations: [], - deletedRelations: [], -}; - export default { ...ResultsPane, clickCreateNewMatchProfile() { @@ -170,14 +107,6 @@ export default { verifySearchResult: (profileName) => { cy.expect(resultsPane.find(MultiColumnListCell({ row: 0, content: profileName })).exists()); }, - createMatchProfileViaApi(matchProfile = marcAuthorityMatchBy010TagProfile) { - return cy.okapiRequest({ - method: 'POST', - path: 'data-import-profiles/matchProfiles', - body: matchProfile, - isDefaultSearchParamsRequired: false, - }); - }, getMatchProfilesViaApi(searchParams) { return cy .okapiRequest({ diff --git a/cypress/support/fragments/settings/dataImport/matchProfiles/newMatchProfile.js b/cypress/support/fragments/settings/dataImport/matchProfiles/newMatchProfile.js index b3c3d548f4..4826da3b75 100644 --- a/cypress/support/fragments/settings/dataImport/matchProfiles/newMatchProfile.js +++ b/cypress/support/fragments/settings/dataImport/matchProfiles/newMatchProfile.js @@ -1,4 +1,3 @@ -/* eslint-disable cypress/no-unnecessary-waiting */ import { HTML, including } from '@interactors/html'; import { not } from 'bigtest'; import { @@ -15,7 +14,6 @@ import { TextArea, TextField, } from '../../../../../../interactors'; -import { EXISTING_RECORDS_NAMES } from '../../../../constants'; const criterionValueTypeList = SelectionList({ id: 'sl-container-criterion-value-type' }); const criterionValueTypeButton = Button({ id: 'criterion-value-type' }); @@ -213,7 +211,7 @@ export default { fillExistingRecordSections, saveAndClose: () => cy.do(Button('Save as profile & Close').click()), - + close: () => cy.do(closeButton.click()), fillMatchProfileForm: ({ profileName, incomingRecordFields, @@ -397,56 +395,6 @@ export default { selectExistingRecordField(existingRecordOption); }, - createMatchProfileViaApi: (nameProfile) => { - return cy - .okapiRequest({ - method: 'POST', - path: 'data-import-profiles/matchProfiles', - body: { - profile: { - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - matchDetails: [ - { - incomingRecordType: 'MARC_BIBLIOGRAPHIC', - incomingMatchExpression: { - fields: [ - { - label: 'field', - value: '001', - }, - { label: 'indicator1', value: '' }, - { label: 'indicator2', value: '' }, - { label: 'recordSubfield', value: '' }, - ], - staticValueDetails: null, - dataValueType: 'VALUE_FROM_RECORD', - }, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, - existingMatchExpression: { - fields: [ - { - label: 'field', - value: 'instance.hrid', - }, - ], - dataValueType: 'VALUE_FROM_RECORD', - }, - matchCriterion: 'EXACTLY_MATCHES', - }, - ], - name: nameProfile, - existingRecordType: EXISTING_RECORDS_NAMES.INSTANCE, - }, - addedRelations: [], - deletedRelations: [], - }, - isDefaultSearchParamsRequired: false, - }) - .then(({ response }) => { - return response; - }); - }, - createMatchProfileWithIncomingAndExistingRecordsViaApi: ({ profileName, incomingRecordFields, @@ -467,22 +415,10 @@ export default { incomingRecordType: recordType, incomingMatchExpression: { fields: [ - { - label: 'field', - value: incomingRecordFields.field, - }, - { - label: 'indicator1', - value: incomingRecordFields.in1, - }, - { - label: 'indicator2', - value: incomingRecordFields.in2, - }, - { - label: 'recordSubfield', - value: incomingRecordFields.subfield, - }, + { label: 'field', value: incomingRecordFields.field }, + { label: 'indicator1', value: incomingRecordFields.in1 }, + { label: 'indicator2', value: incomingRecordFields.in2 }, + { label: 'recordSubfield', value: incomingRecordFields.subfield }, ], staticValueDetails: null, dataValueType: 'VALUE_FROM_RECORD', @@ -490,19 +426,10 @@ export default { existingRecordType: recordType, existingMatchExpression: { fields: [ - { - label: 'field', - value: existingRecordFields.field, - }, - { - label: 'indicator1', - value: existingRecordFields.in1, - }, + { label: 'field', value: existingRecordFields.field }, + { label: 'indicator1', value: existingRecordFields.in1 }, { label: 'indicator2', value: existingRecordFields.in2 }, - { - label: 'recordSubfield', - value: existingRecordFields.subfield, - }, + { label: 'recordSubfield', value: existingRecordFields.subfield }, ], staticValueDetails: null, dataValueType: 'VALUE_FROM_RECORD', @@ -588,83 +515,6 @@ export default { }); }, - createMatchProfileViaApiMarc: ({ - profileName, - incomingRecordFields, - existingRecordFields, - recordType, - }) => { - return cy - .okapiRequest({ - method: 'POST', - path: 'data-import-profiles/matchProfiles', - body: { - profile: { - incomingRecordType: recordType, - matchDetails: [ - { - incomingRecordType: recordType, - incomingMatchExpression: { - fields: [ - { - label: 'field', - value: incomingRecordFields.field, - }, - { - label: 'indicator1', - value: incomingRecordFields.in1, - }, - { - label: 'indicator2', - value: incomingRecordFields.in2, - }, - { - label: 'recordSubfield', - value: incomingRecordFields.subfield, - }, - ], - staticValueDetails: null, - dataValueType: 'VALUE_FROM_RECORD', - }, - existingRecordType: recordType, - existingMatchExpression: { - fields: [ - { - label: 'field', - value: existingRecordFields.field, - }, - { - label: 'indicator1', - value: existingRecordFields.in1, - }, - { - label: 'indicator2', - value: existingRecordFields.in2, - }, - { - label: 'recordSubfield', - value: existingRecordFields.subfield, - }, - ], - staticValueDetails: null, - dataValueType: 'VALUE_FROM_RECORD', - }, - matchCriterion: 'EXACTLY_MATCHES', - }, - ], - name: profileName, - existingRecordType: recordType, - }, - addedRelations: [], - deletedRelations: [], - }, - isDefaultSearchParamsRequired: false, - }) - .then(({ response }) => { - return response; - }); - }, - checkCalloutMessage: (message) => { cy.expect(Callout({ textContent: including(message) }).exists()); }, @@ -727,5 +577,4 @@ export default { }), ]); }, - close: () => cy.do(closeButton.click()), };