From 2d6cd82738c18638aa839f7c2cc7c85bdade7bfd Mon Sep 17 00:00:00 2001 From: Daniil Novikau Date: Thu, 30 Nov 2023 12:21:21 +0300 Subject: [PATCH 1/2] [353968] User can edit 'Renewal note' field on POL --- .../e2e/orders/edit-pol-renewal-note.cy.js | 77 +++++++++++++++++++ .../fragments/orders/orderLineEditForm.js | 8 ++ 2 files changed, 85 insertions(+) create mode 100644 cypress/e2e/orders/edit-pol-renewal-note.cy.js diff --git a/cypress/e2e/orders/edit-pol-renewal-note.cy.js b/cypress/e2e/orders/edit-pol-renewal-note.cy.js new file mode 100644 index 0000000000..4935ca162b --- /dev/null +++ b/cypress/e2e/orders/edit-pol-renewal-note.cy.js @@ -0,0 +1,77 @@ +import { Permissions } from '../../support/dictionary'; +import { NewOrder, Orders, BasicOrderLine } from '../../support/fragments/orders'; +import { NewOrganization, Organizations } from '../../support/fragments/organizations'; +import TopMenu from '../../support/fragments/topMenu'; +import Users from '../../support/fragments/users/users'; +import getRandomPostfix from '../../support/utils/stringTools'; + +describe('Orders', () => { + const testData = { + renewalNote: `autotest_renewal_note_${getRandomPostfix()}`, + organization: NewOrganization.getDefaultOrganization(), + order: {}, + user: {}, + }; + + before('Create test data', () => { + cy.getAdminToken().then(() => { + Organizations.createOrganizationViaApi(testData.organization).then(() => { + testData.order = NewOrder.getDefaultOngoingOrder({ vendorId: testData.organization.id }); + testData.orderLine = BasicOrderLine.getDefaultOrderLine(); + + Orders.createOrderWithOrderLineViaApi(testData.order, testData.orderLine).then((order) => { + testData.order = order; + + Orders.updateOrderViaApi({ ...testData.order, workflowStatus: 'Open' }); + }); + }); + }); + + cy.createTempUser([Permissions.uiOrdersEdit.gui, Permissions.uiOrdersView.gui]).then( + (userProperties) => { + testData.user = userProperties; + + cy.login(testData.user.username, testData.user.password, { + path: TopMenu.ordersPath, + waiter: Orders.waitLoading, + }); + }, + ); + }); + + after('Delete test data', () => { + cy.getAdminToken().then(() => { + Organizations.deleteOrganizationViaApi(testData.organization.id); + Orders.deleteOrderViaApi(testData.order.id); + Users.deleteViaApi(testData.user.userId); + }); + }); + + it( + 'C353968 A user can edit "Renewal note" field on POL (thunderjet) (TaaS)', + { tags: ['extendedPath', 'thunderjet'] }, + () => { + // Click on the record with Order name from precondition + const OrderDetails = Orders.selectOrderByPONumber(testData.order.poNumber); + + // Click on the PO line record in "PO line" accordion + const OrderLineDetails = OrderDetails.openPolDetails(testData.orderLine.titleOrPackage); + OrderLineDetails.checkOngoingOrderInformationSection([{ key: 'Renewal note', value: '' }]); + + // Click "Actions" button, Select "Edit" option + const OrderLineEditForm = OrderLineDetails.openOrderLineEditForm(); + OrderLineEditForm.checkOngoingOrderInformationSection([ + { label: 'Renewal note', conditions: { value: '' } }, + ]); + + // Edit "Renewal note" field and click "Save & close" button + OrderLineEditForm.fillOrderLineFields({ + ongoingOrder: { renewalNote: testData.renewalNote }, + }); + OrderLineEditForm.clickSaveButton(); + OrderLineDetails.checkOngoingOrderInformationSection([ + { key: 'Renewal note', value: testData.renewalNote }, + ]); + }, + ); +}); diff --git a/cypress/support/fragments/orders/orderLineEditForm.js b/cypress/support/fragments/orders/orderLineEditForm.js index 7dfcfe820a..921041f360 100644 --- a/cypress/support/fragments/orders/orderLineEditForm.js +++ b/cypress/support/fragments/orders/orderLineEditForm.js @@ -79,6 +79,9 @@ export default { if (orderLine.poLineDetails) { this.fillPoLineDetails(orderLine.poLineDetails); } + if (orderLine.ongoingOrder) { + this.fillOngoingOrderInformation(orderLine.ongoingOrder); + } if (orderLine.vendorDetails) { this.fillVendorDetails(orderLine.vendorDetails); } @@ -109,6 +112,11 @@ export default { cy.do(orderLineFields.orderFormat.choose(poLineDetails.orderFormat)); } }, + fillOngoingOrderInformation({ renewalNote }) { + if (renewalNote) { + cy.do(ongoingInformationFields['Renewal note'].fillIn(renewalNote)); + } + }, fillVendorDetails(vendorDetails) { if (vendorDetails.accountNumber) { cy.do(vendorDetailsFields.accountNumber.choose(including(vendorDetails.accountNumber))); From f96aa3af85be03b0d9bb586b58ec3b9e8204e99a Mon Sep 17 00:00:00 2001 From: TatianaOne <55943982+TatianaOne@users.noreply.github.com> Date: Thu, 30 Nov 2023 14:57:47 +0200 Subject: [PATCH 2/2] added test (#2512) --- ...-rules-with-valid-data-when-deriving.cy.js | 109 ++++++++++++++++++ .../fragments/inventory/inventoryInstance.js | 1 + 2 files changed, 110 insertions(+) create mode 100644 cypress/e2e/marc/marc-bibliographic/derive-marc-bib/ldr-validation-rules-with-valid-data-when-deriving.cy.js diff --git a/cypress/e2e/marc/marc-bibliographic/derive-marc-bib/ldr-validation-rules-with-valid-data-when-deriving.cy.js b/cypress/e2e/marc/marc-bibliographic/derive-marc-bib/ldr-validation-rules-with-valid-data-when-deriving.cy.js new file mode 100644 index 0000000000..a7829222b6 --- /dev/null +++ b/cypress/e2e/marc/marc-bibliographic/derive-marc-bib/ldr-validation-rules-with-valid-data-when-deriving.cy.js @@ -0,0 +1,109 @@ +import TestTypes from '../../../../support/dictionary/testTypes'; +import DevTeams from '../../../../support/dictionary/devTeams'; +import Permissions from '../../../../support/dictionary/permissions'; +import TopMenu from '../../../../support/fragments/topMenu'; +import DataImport from '../../../../support/fragments/data_import/dataImport'; +import Users from '../../../../support/fragments/users/users'; +import JobProfiles from '../../../../support/fragments/data_import/job_profiles/jobProfiles'; +import Logs from '../../../../support/fragments/data_import/logs/logs'; +import QuickMarcEditor from '../../../../support/fragments/quickMarcEditor'; +import getRandomPostfix from '../../../../support/utils/stringTools'; +import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances'; +import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance'; + +describe('MARC -> MARC Bibliographic -> Edit MARC bib', () => { + const testData = { + absent008Fields: ['ELvl', 'Desc'], + }; + const marcFile = { + marc: 'oneMarcBib.mrc', + fileName: `testMarcFileC380398${getRandomPostfix()}.mrc`, + jobProfileToRun: 'Default - Create instance and SRS MARC Bib', + }; + const LDRvalues = [ + // 05 + '01218aam\\a22002773c\\4500', + '01218cam\\a22002773c\\4500', + '01218dam\\a22002773c\\4500', + '01218nam\\a22002773c\\4500', + '01218pam\\a22002773c\\4500', + // 08 + '01218nam a22002773c\\4500', + '01218namaa22002773c\\4500', + '01218nam\\a22002773c\\4500', + // 17 + '01218nam\\a2200277Ac\\4500', + '01218nam\\a2200277vc\\4500', + '01218nam\\a22002778c\\4500', + '01218nam\\a2200277?c\\4500', + // 18 + '01218nam\\a22002773 \\4500', + '01218nam\\a22002773a\\4500', + '01218nam\\a22002773\\\\4500', + '01218nam\\a22002773c\\4500', + '01218nam\\a22002773i\\4500', + '01218nam\\a22002773n\\4500', + '01218nam\\a22002773u\\4500', + // 19 + '01218nam\\a22002773c 4500', + '01218nam\\a22002773ca4500', + '01218nam\\a22002773c\\4500', + '01218nam\\a22002773cb4500', + '01218nam\\a22002773cc4500', + ]; + + before('Create user and data', () => { + cy.loginAsAdmin({ path: TopMenu.dataImportPath, waiter: DataImport.waitLoading }).then(() => { + DataImport.verifyUploadState(); + DataImport.uploadFileAndRetry(marcFile.marc, marcFile.fileName); + JobProfiles.waitLoadingList(); + JobProfiles.search(marcFile.jobProfileToRun); + JobProfiles.runImportFile(); + JobProfiles.waitFileIsImported(marcFile.fileName); + Logs.checkStatusOfJobProfile('Completed'); + Logs.openFileDetails(marcFile.fileName); + Logs.getCreatedItemsID().then((link) => { + testData.instanceID = link.split('/')[5]; + }); + }); + + cy.createTempUser([ + Permissions.inventoryAll.gui, + Permissions.uiQuickMarcQuickMarcEditorDuplicate.gui, + ]).then((createdUserProperties) => { + testData.user = createdUserProperties; + + cy.login(testData.user.username, testData.user.password, { + path: TopMenu.inventoryPath, + waiter: InventoryInstances.waitContentLoading, + }); + }); + }); + + after('Deleting test data', () => { + cy.getAdminToken().then(() => { + Users.deleteViaApi(testData.user.userId); + InventoryInstance.deleteInstanceViaApi(testData.instanceID); + }); + }); + + it( + 'C380398 Verify "LDR" validation rules with valid data for positions 05, 08, 17, 18, 19 when deriving record (spitfire) (TaaS)', + { tags: [TestTypes.extendedPath, DevTeams.spitfire] }, + () => { + cy.wrap(LDRvalues).each((LDRvalue) => { + InventoryInstance.searchByTitle(testData.instanceID); + InventoryInstances.selectInstance(); + InventoryInstance.waitLoading(); + InventoryInstance.deriveNewMarcBibRecord(); + QuickMarcEditor.waitLoading(); + QuickMarcEditor.check008FieldsAbsent(...testData.absent008Fields); + QuickMarcEditor.updateExistingField('LDR', LDRvalue); + QuickMarcEditor.checkButtonSaveAndCloseEnable(); + QuickMarcEditor.pressSaveAndClose(); + InventoryInstance.waitInventoryLoading(); + InventoryInstances.resetAllFilters(); + }); + }, + ); +}); diff --git a/cypress/support/fragments/inventory/inventoryInstance.js b/cypress/support/fragments/inventory/inventoryInstance.js index 34fee072f2..0b4ad993cd 100644 --- a/cypress/support/fragments/inventory/inventoryInstance.js +++ b/cypress/support/fragments/inventory/inventoryInstance.js @@ -369,6 +369,7 @@ export default { deriveNewMarcBibRecord: () => { cy.do(actionsButton.click()); + cy.wait(2000); cy.do(deriveNewMarcBibRecord.click()); cy.expect([QuickMarcEditor().exists(), QuickMarcEditorRow({ tagValue: '999' }).exists()]); },