diff --git a/cypress/e2e/consortia/inventory/instance/consortial-holdings-accordion-shadow-instance-central-tenant.cy.js b/cypress/e2e/consortia/inventory/instance/consortial-holdings-accordion-shadow-instance-central-tenant.cy.js new file mode 100644 index 0000000000..b805932fad --- /dev/null +++ b/cypress/e2e/consortia/inventory/instance/consortial-holdings-accordion-shadow-instance-central-tenant.cy.js @@ -0,0 +1,119 @@ +import uuid from 'uuid'; +import { ITEM_STATUS_NAMES } from '../../../../support/constants'; +import Affiliations from '../../../../support/dictionary/affiliations'; +import Permissions from '../../../../support/dictionary/permissions'; +import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance'; +import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances'; +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 getRandomPostfix from '../../../../support/utils/stringTools'; + +describe('Inventory', () => { + describe('Instance', () => { + const testData = { + instanceTitle: `C411616 Instance ${getRandomPostfix()}`, + itemBarcode: uuid(), + }; + + before('Create test data', () => { + cy.getAdminToken(); + cy.getConsortiaId().then((consortiaId) => { + testData.consortiaId = consortiaId; + }); + cy.setTenant(Affiliations.College); + cy.getCollegeAdminToken() + .then(() => { + cy.getInstanceTypes({ limit: 1 }).then((instanceTypes) => { + testData.instanceTypeId = instanceTypes[0].id; + }); + cy.getHoldingTypes({ limit: 1 }).then((res) => { + testData.holdingTypeId = res[0].id; + }); + const collegeLocationData = Locations.getDefaultLocation({ + servicePointId: ServicePoints.getDefaultServicePoint().id, + }).location; + Locations.createViaApi(collegeLocationData).then((location) => { + testData.collegeLocation = location; + }); + cy.getLoanTypes({ limit: 1 }).then((res) => { + testData.loanTypeId = res[0].id; + }); + cy.getMaterialTypes({ limit: 1 }).then((res) => { + testData.materialTypeId = res.id; + }); + }) + .then(() => { + InventoryInstances.createFolioInstanceViaApi({ + instance: { + instanceTypeId: testData.instanceTypeId, + title: testData.instanceTitle, + }, + holdings: [ + { + holdingsTypeId: testData.holdingTypeId, + permanentLocationId: testData.collegeLocation.id, + }, + ], + items: [ + { + barcode: testData.itemBarcode, + status: { name: ITEM_STATUS_NAMES.AVAILABLE }, + permanentLoanType: { id: testData.loanTypeId }, + materialType: { id: testData.materialTypeId }, + }, + ], + }).then((specialInstanceIds) => { + testData.testInstanceIds = specialInstanceIds; + + InventoryInstance.shareInstanceViaApi( + specialInstanceIds.instanceId, + testData.consortiaId, + Affiliations.College, + Affiliations.Consortia, + ); + }); + }); + + cy.resetTenant(); + cy.createTempUser([Permissions.inventoryAll.gui]).then((userProperties) => { + testData.user = userProperties; + + cy.assignAffiliationToUser(Affiliations.College, testData.user.userId); + cy.setTenant(Affiliations.College); + cy.assignPermissionsToExistingUser(testData.user.userId, [Permissions.inventoryAll.gui]); + + cy.login(testData.user.username, testData.user.password, { + path: TopMenu.inventoryPath, + waiter: InventoryInstances.waitContentLoading, + }); + }); + }); + + after('Delete test data', () => { + cy.resetTenant(); + cy.getAdminToken(); + Users.deleteViaApi(testData.user.userId); + cy.setTenant(Affiliations.College); + InventoryInstances.deleteInstanceAndHoldingRecordAndAllItemsViaApi(testData.itemBarcode); + Locations.deleteViaApi(testData.collegeLocation); + }); + + it( + 'C411616 (CONSORTIA) Verify the Consortial holdings accordion details on shared Instance in Central Tenant (consortia) (folijet)', + { tags: ['extendedPathECS', 'folijet'] }, + () => { + InventoryInstances.searchByTitle(testData.instanceTitle); + InventoryInstances.selectInstance(); + InventoryInstance.waitLoading(); + InventoryInstance.verifyConsortiaHoldingsAccordion(false); + InventoryInstance.expandConsortiaHoldings(); + InventoryInstance.verifyMemberSubHoldingsAccordion(Affiliations.College); + InventoryInstance.expandMemberSubHoldings(Affiliations.College); + InventoryInstance.openHoldingsAccordion(testData.collegeLocation.name); + InventoryInstance.checkIsItemCreated(testData.itemBarcode); + }, + ); + }); +}); diff --git a/cypress/e2e/consortia/inventory/instance/consortial-holdings-accordion-shadow-instance-member-tenant.cy.js b/cypress/e2e/consortia/inventory/instance/consortial-holdings-accordion-shadow-instance-member-tenant.cy.js new file mode 100644 index 0000000000..32657166ea --- /dev/null +++ b/cypress/e2e/consortia/inventory/instance/consortial-holdings-accordion-shadow-instance-member-tenant.cy.js @@ -0,0 +1,67 @@ +import Affiliations, { tenantNames } from '../../../../support/dictionary/affiliations'; +import Permissions from '../../../../support/dictionary/permissions'; +import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance'; +import InventoryInstances from '../../../../support/fragments/inventory/inventoryInstances'; +import ConsortiumManager from '../../../../support/fragments/settings/consortium-manager/consortium-manager'; +import TopMenu from '../../../../support/fragments/topMenu'; +import Users from '../../../../support/fragments/users/users'; + +describe('Inventory', () => { + describe('Instance', () => { + const testData = {}; + + before('Create test data', () => { + cy.getAdminToken(); + cy.getConsortiaId().then((consortiaId) => { + testData.consortiaId = consortiaId; + }); + cy.setTenant(Affiliations.College); + InventoryInstance.createInstanceViaApi().then(({ instanceData }) => { + testData.instance = instanceData; + InventoryInstance.shareInstanceViaApi( + testData.instance.instanceId, + testData.consortiaId, + Affiliations.College, + Affiliations.Consortia, + ); + }); + + cy.resetTenant(); + cy.createTempUser([Permissions.inventoryAll.gui]).then((userProperties) => { + testData.user = userProperties; + + cy.assignAffiliationToUser(Affiliations.College, testData.user.userId); + cy.setTenant(Affiliations.College); + cy.assignPermissionsToExistingUser(testData.user.userId, [Permissions.inventoryAll.gui]); + + cy.login(testData.user.username, testData.user.password); + + ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central); + ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college); + ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.college); + }); + }); + + after('Delete test data', () => { + cy.resetTenant(); + cy.getAdminToken(); + Users.deleteViaApi(testData.user.userId); + cy.setTenant(Affiliations.College); + InventoryInstance.deleteInstanceViaApi(testData.instance.instanceId); + }); + + it( + 'C411615 (CONSORTIA) Verify the Consortial holdings accordion on shadow Instance in Member Tenant (consortia) (folijet)', + { tags: ['extendedPathECS', 'folijet'] }, + () => { + cy.visit(TopMenu.inventoryPath); + InventoryInstances.waitContentLoading(); + + InventoryInstances.searchByTitle(testData.instance.instanceId); + InventoryInstances.selectInstance(); + InventoryInstance.waitLoading(); + InventoryInstance.verifyConsortiaHoldingsAccordion(); + }, + ); + }); +}); diff --git a/cypress/e2e/consortia/inventory/instance/holding-actions-menu-on-central-tenant-for-member-librarys-holdings-record.cy.js b/cypress/e2e/consortia/inventory/instance/holding-actions-menu-on-central-tenant-for-member-librarys-holdings-record.cy.js index d09e9f2ee5..fbb6767bc0 100644 --- a/cypress/e2e/consortia/inventory/instance/holding-actions-menu-on-central-tenant-for-member-librarys-holdings-record.cy.js +++ b/cypress/e2e/consortia/inventory/instance/holding-actions-menu-on-central-tenant-for-member-librarys-holdings-record.cy.js @@ -9,13 +9,11 @@ import Locations from '../../../../support/fragments/settings/tenant/location-se import ServicePoints from '../../../../support/fragments/settings/tenant/servicePoints/servicePoints'; import TopMenu from '../../../../support/fragments/topMenu'; import Users from '../../../../support/fragments/users/users'; -import getRandomPostfix from '../../../../support/utils/stringTools'; describe.skip('Inventory', () => { describe('Instance', () => { let user; const testData = { - newInstanceTitle: `C411384 instanceTitle${getRandomPostfix()}`, servicePoint: ServicePoints.defaultServicePoint, }; diff --git a/cypress/support/fragments/inventory/instanceRecordView.js b/cypress/support/fragments/inventory/instanceRecordView.js index d586e5260d..83cdb226c6 100644 --- a/cypress/support/fragments/inventory/instanceRecordView.js +++ b/cypress/support/fragments/inventory/instanceRecordView.js @@ -32,7 +32,7 @@ const electronicAccessAccordion = Accordion('Electronic access'); const classificationAccordion = Accordion('Classification'); const listClassifications = MultiColumnList({ id: 'list-classifications' }); const descriptiveDataAccordion = Accordion('Descriptive data'); -const adminDataAcoordion = Accordion('Administrative data'); +const adminDataAccordion = Accordion('Administrative data'); const publisherList = descriptiveDataAccordion.find(MultiColumnList({ id: 'list-publication' })); const verifyResourceTitle = (value) => { @@ -341,7 +341,7 @@ export default { verifyMarkedAsStaffSuppressed() { cy.expect( rootSection - .find(adminDataAcoordion) + .find(adminDataAccordion) .find(HTML(including('Staff suppressed'))) .exists(), ); @@ -350,7 +350,7 @@ export default { verifyNotMarkAssuppressFromDiscavery() { cy.expect( rootSection - .find(adminDataAcoordion) + .find(adminDataAccordion) .find(HTML(including('Suppressed from discovery'))) .absent(), ); @@ -359,7 +359,7 @@ export default { verifyMarkedAsPreviouslyHeld() { cy.expect( rootSection - .find(adminDataAcoordion) + .find(adminDataAccordion) .find(HTML(including('Previously held'))) .exists(), ); @@ -368,7 +368,7 @@ export default { verifyNotMarkAsPreviouslyHeld() { cy.expect( rootSection - .find(adminDataAcoordion) + .find(adminDataAccordion) .find(HTML(including('Previously held'))) .absent(), );