Skip to content

Commit 8bea2e9

Browse files
committed
Merge remote-tracking branch 'origin/master' into FAT-24610
2 parents 37160d7 + 751559f commit 8bea2e9

95 files changed

Lines changed: 5360 additions & 480 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cypress/e2e/bulk-edit/logs/bulk-edit-logs-sorting.cy.js

Lines changed: 415 additions & 0 deletions
Large diffs are not rendered by default.

cypress/e2e/consortia/inventory/select-instance-plugin/filters/plug-in-instance-receiving-use-shared-facet-search-member.cy.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,9 @@ describe('Inventory', () => {
161161
cy.setTenant(Affiliations.College);
162162
cy.login(user.username, user.password, {
163163
path: TopMenu.receivingPath,
164-
waiter: Receiving.waitLoading,
164+
waiter: Receiving.verifyPageDisplayed,
165165
});
166+
Receiving.verifySearchAndActionsAvailable();
166167
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.college);
167168
});
168169
});
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
import { Permissions } from '../../../../support/dictionary';
2+
import Users from '../../../../support/fragments/users/users';
3+
import { CallNumberBrowseSettings } from '../../../../support/fragments/settings/inventory/instances/callNumberBrowse';
4+
import Affiliations, { tenantNames } from '../../../../support/dictionary/affiliations';
5+
import ConsortiumManager from '../../../../support/fragments/settings/consortium-manager/consortium-manager';
6+
import SettingsPane from '../../../../support/fragments/settings/settingsPane';
7+
import TopMenu from '../../../../support/fragments/topMenu';
8+
import { APPLICATION_NAMES, BROWSE_CALL_NUMBER_OPTIONS } from '../../../../support/constants';
9+
import TopMenuNavigation from '../../../../support/fragments/topMenuNavigation';
10+
import InteractorsTools from '../../../../support/utils/interactorsTools';
11+
12+
describe('Inventory', () => {
13+
describe('Settings', () => {
14+
describe('Call number browse', () => {
15+
describe('Consortia', () => {
16+
const browseOption = BROWSE_CALL_NUMBER_OPTIONS.LIBRARY_OF_CONGRESS;
17+
const selectedCallNumberType = 'Dewey Decimal classification';
18+
const callNumberBrowseTab = 'Call number browse';
19+
const saveCalloutText = `The call number browse type ${browseOption} was successfully updated`;
20+
let user;
21+
22+
before('Create test data', () => {
23+
cy.resetTenant();
24+
cy.getAdminToken();
25+
CallNumberBrowseSettings.assignCallNumberTypesViaApi({
26+
name: browseOption,
27+
callNumberTypes: [],
28+
});
29+
cy.createTempUser([Permissions.uiSettingsCallNumberBrowseView.gui]).then(
30+
(userProperties) => {
31+
user = userProperties;
32+
33+
cy.assignAffiliationToUser(Affiliations.College, user.userId);
34+
cy.setTenant(Affiliations.College);
35+
cy.assignPermissionsToExistingUser(user.userId, [
36+
Permissions.uiSettingsCallNumberTypesCreateEditDelete.gui,
37+
]);
38+
39+
cy.resetTenant();
40+
cy.login(user.username, user.password, {
41+
path: TopMenu.settingsPath,
42+
waiter: SettingsPane.waitLoading,
43+
});
44+
TopMenuNavigation.navigateToApp(
45+
APPLICATION_NAMES.SETTINGS,
46+
APPLICATION_NAMES.INVENTORY,
47+
);
48+
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
49+
CallNumberBrowseSettings.openCallNumberBrowse();
50+
CallNumberBrowseSettings.validateCallNumberBrowsePaneOpened();
51+
},
52+
);
53+
});
54+
55+
after('Delete test data', () => {
56+
cy.resetTenant();
57+
cy.getAdminToken();
58+
CallNumberBrowseSettings.assignCallNumberTypesViaApi({
59+
name: browseOption,
60+
callNumberTypes: [],
61+
});
62+
Users.deleteViaApi(user.userId);
63+
});
64+
65+
it(
66+
'C627462 "Call number browse" pane is not displayed on Member tenant when user has only "Call number types" permission on Member tenant (consortia) (spitfire)',
67+
{ tags: ['extendedPathECS', 'spitfire', 'C627462'] },
68+
() => {
69+
CallNumberBrowseSettings.clickEditButtonForItem(browseOption);
70+
CallNumberBrowseSettings.validateSaveButtonStatusForItem({
71+
itemName: browseOption,
72+
isEnabled: false,
73+
});
74+
CallNumberBrowseSettings.validateCancelButtonStatusForItem({
75+
itemName: browseOption,
76+
isEnabled: true,
77+
});
78+
79+
CallNumberBrowseSettings.expandCallNumberTypeDropdownOption(browseOption);
80+
CallNumberBrowseSettings.validateCallNumberTypesDropdownExpanded(browseOption);
81+
CallNumberBrowseSettings.selectCallNumberTypeDropdownOption(selectedCallNumberType);
82+
CallNumberBrowseSettings.validateOptionSelectedInCallNumberTypesDropdown(
83+
browseOption,
84+
selectedCallNumberType,
85+
);
86+
CallNumberBrowseSettings.validateCallNumberTypesDropdownExpanded(browseOption);
87+
CallNumberBrowseSettings.validateSaveButtonStatusForItem({
88+
itemName: browseOption,
89+
isEnabled: true,
90+
});
91+
92+
CallNumberBrowseSettings.clickSaveButtonForItem(browseOption);
93+
InteractorsTools.checkCalloutMessage(saveCalloutText);
94+
CallNumberBrowseSettings.validateEditButtonForItemExists(browseOption);
95+
CallNumberBrowseSettings.validateCallNumberBrowseRowInTable(
96+
browseOption,
97+
selectedCallNumberType,
98+
true,
99+
);
100+
101+
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
102+
SettingsPane.waitLoading();
103+
SettingsPane.selectSettingsTab(APPLICATION_NAMES.INVENTORY);
104+
SettingsPane.checkOptionInSecondPaneExists(callNumberBrowseTab, false);
105+
},
106+
);
107+
});
108+
});
109+
});
110+
});

cypress/e2e/consortia/marc/marc-bibliographic/create-new-marcBib/automated-linking/create-marc-bib-auto-link-only-shared-central.cy.js

Lines changed: 66 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ describe('MARC', () => {
8888
let user;
8989
let createdAuthorityIdCentral;
9090
let createdAuthorityIdCollege;
91+
let createdInstanceId;
9192

9293
before('Create test data', () => {
9394
cy.resetTenant();
@@ -188,74 +189,81 @@ describe('MARC', () => {
188189
QuickMarcEditor.pressSaveAndCloseButton();
189190
QuickMarcEditor.checkAfterSaveAndClose();
190191
InventoryInstance.verifyInstanceTitle(bibTitle);
191-
InventoryInstance.checkAuthorityAppIconInSection(
192-
testData.contributorSectionId,
193-
linkedContributorValue,
194-
true,
195-
);
192+
InventoryInstance.getId().then((instanceId) => {
193+
createdInstanceId = instanceId;
196194

197-
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
198-
InventoryInstances.waitContentLoading();
195+
InventoryInstance.checkAuthorityAppIconInSection(
196+
testData.contributorSectionId,
197+
linkedContributorValue,
198+
true,
199+
);
199200

200-
TopMenuNavigation.navigateToApp(APPLICATION_NAMES.MARC_AUTHORITY);
201-
MarcAuthorities.waitLoading();
201+
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
202+
InventoryInstances.waitContentLoading();
202203

203-
MarcAuthorities.searchBeats(authorityHeadingCollege);
204-
MarcAuthorities.verifyNumberOfTitlesForRowWithValue(authorityHeadingCollege, '');
205-
MarcAuthority.verifyLocalAuthorityDetailsHeading(authorityHeadingCollege);
204+
TopMenuNavigation.navigateToApp(APPLICATION_NAMES.MARC_AUTHORITY);
205+
MarcAuthorities.waitLoading();
206206

207-
MarcAuthorities.searchBeats(authorityHeadingCentral);
208-
MarcAuthorities.verifyNumberOfTitlesForRowWithValue(authorityHeadingCentral, '1');
209-
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
207+
MarcAuthorities.searchBeats(authorityHeadingCollege);
208+
MarcAuthorities.verifyNumberOfTitlesForRowWithValue(authorityHeadingCollege, '');
209+
MarcAuthority.verifyLocalAuthorityDetailsHeading(authorityHeadingCollege);
210210

211-
MarcAuthorities.clickNumberOfTitlesByHeading(authorityHeadingCentral);
212-
InventoryInstance.waitInstanceRecordViewOpened();
213-
InventoryInstance.verifyInstanceTitle(bibTitle);
214-
InventoryInstance.verifySourceInAdministrativeData(INSTANCE_SOURCE_NAMES.MARC);
215-
InventoryInstance.checkAuthorityAppIconInSection(
216-
testData.contributorSectionId,
217-
linkedContributorValue,
218-
true,
219-
);
220-
InventoryInstance.checkAuthorityAppIconInSection(
221-
testData.contributorSectionId,
222-
notLinkedContributorValue,
223-
false,
224-
);
211+
MarcAuthorities.searchBeats(authorityHeadingCentral);
212+
MarcAuthorities.verifyNumberOfTitlesForRowWithValue(authorityHeadingCentral, '1');
213+
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
225214

226-
InventoryInstance.clickViewAuthorityIconDisplayedInInstanceDetailsPane(
227-
testData.contributorsAccordionName,
228-
);
229-
MarcAuthorities.waitLoading();
230-
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
215+
MarcAuthorities.clickNumberOfTitlesByHeading(authorityHeadingCentral);
216+
InventoryInstance.waitInstanceRecordViewOpened();
217+
InventoryInstance.verifyInstanceTitle(bibTitle);
218+
InventoryInstance.verifySourceInAdministrativeData(INSTANCE_SOURCE_NAMES.MARC);
219+
InventoryInstance.checkAuthorityAppIconInSection(
220+
testData.contributorSectionId,
221+
linkedContributorValue,
222+
true,
223+
);
224+
InventoryInstance.checkAuthorityAppIconInSection(
225+
testData.contributorSectionId,
226+
notLinkedContributorValue,
227+
false,
228+
);
231229

232-
InventoryInstance.goToPreviousPage();
233-
InventoryInstance.waitInstanceRecordViewOpened();
234-
InventoryInstance.verifyInstanceTitle(bibTitle);
235-
InventoryInstance.clickViewAuthorityIconDisplayedInInstanceDetailsPane(
236-
testData.contributorsAccordionName,
237-
);
238-
MarcAuthorities.waitLoading();
239-
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
230+
InventoryInstance.clickViewAuthorityIconDisplayedInInstanceDetailsPane(
231+
testData.contributorsAccordionName,
232+
);
233+
MarcAuthorities.waitLoading();
234+
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
240235

241-
InventoryInstance.goToPreviousPage();
242-
InventoryInstance.waitInstanceRecordViewOpened();
243-
InventoryInstance.verifyInstanceTitle(bibTitle);
244-
InventoryInstance.viewSource();
245-
InventoryViewSource.verifyLinkedToAuthorityIcon(linkedFieldData.rowIndex);
236+
cy.visit(`inventory/view/${createdInstanceId}`);
237+
InventoryInstance.waitLoading();
238+
InventoryInstance.waitInstanceRecordViewOpened();
239+
InventoryInstance.verifyInstanceTitle(bibTitle);
240+
InventoryInstance.clickViewAuthorityIconDisplayedInInstanceDetailsPane(
241+
testData.contributorsAccordionName,
242+
);
243+
MarcAuthorities.waitLoading();
244+
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
246245

247-
InventoryViewSource.clickViewMarcAuthorityIcon();
248-
MarcAuthorities.waitLoading();
249-
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
246+
cy.visit(`inventory/view/${createdInstanceId}`);
247+
InventoryInstance.waitLoading();
248+
InventoryInstance.waitInstanceRecordViewOpened();
249+
InventoryInstance.verifyInstanceTitle(bibTitle);
250+
InventoryInstance.viewSource();
251+
InventoryViewSource.verifyLinkedToAuthorityIcon(linkedFieldData.rowIndex);
250252

251-
InventoryInstance.goToPreviousPage();
252-
InventoryInstance.waitInstanceRecordViewOpened();
253-
InventoryInstance.verifyInstanceTitle(bibTitle);
254-
InventoryInstance.viewSource();
255-
InventoryViewSource.verifyLinkedToAuthorityIcon(linkedFieldData.rowIndex);
256-
InventoryViewSource.clickViewMarcAuthorityIcon();
257-
MarcAuthorities.waitLoading();
258-
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
253+
InventoryViewSource.clickViewMarcAuthorityIcon();
254+
MarcAuthorities.waitLoading();
255+
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
256+
257+
cy.visit(`inventory/view/${createdInstanceId}`);
258+
InventoryInstance.waitLoading();
259+
InventoryInstance.waitInstanceRecordViewOpened();
260+
InventoryInstance.verifyInstanceTitle(bibTitle);
261+
InventoryInstance.viewSource();
262+
InventoryViewSource.verifyLinkedToAuthorityIcon(linkedFieldData.rowIndex);
263+
InventoryViewSource.clickViewMarcAuthorityIcon();
264+
MarcAuthorities.waitLoading();
265+
MarcAuthority.verifySharedAuthorityDetailsHeading(authorityHeadingCentral);
266+
});
259267
},
260268
);
261269
});

cypress/e2e/consortia/marc/marc-bibliographic/edit-marc-bib/automated-linking/auto-linking-shared-marcBib-with-shared-marcAuth-on-central.cy.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import QuickMarcEditor from '../../../../../../support/fragments/quickMarcEditor
1111
import ConsortiumManager from '../../../../../../support/fragments/settings/consortium-manager/consortium-manager';
1212
import MarcAuthority from '../../../../../../support/fragments/marcAuthority/marcAuthority';
1313
import MarcAuthorities from '../../../../../../support/fragments/marcAuthority/marcAuthorities';
14+
import InventorySearchAndFilter from '../../../../../../support/fragments/inventory/inventorySearchAndFilter';
1415

1516
describe('MARC', () => {
1617
describe('MARC Bibliographic', () => {
@@ -184,6 +185,7 @@ describe('MARC', () => {
184185
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
185186
InventoryInstances.waitContentLoading();
186187
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.college);
188+
InventorySearchAndFilter.clearDefaultHeldbyFilter();
187189
InventoryInstances.searchByTitle(createdRecordIDs[0]);
188190
InventoryInstances.selectInstance();
189191
InventoryInstance.checkExpectedMARCSource();

cypress/e2e/consortia/settings/marc-authority/delete-authority-file-retention-policy-member.cy.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ describe('MARC', () => {
6161
testData.baseURL,
6262
).then((sourceId) => {
6363
authorityFileId = sourceId;
64+
cy.wait(70_000); // source file should be processed by scheduled job before assigning
6465
// Create a Local MARC authority record assigned to the file in Member tenant
66+
cy.getAdminToken();
6567
cy.setTenant(Affiliations.College);
6668
MarcAuthorities.createMarcAuthorityViaAPI(
6769
testData.prefix,
@@ -101,11 +103,9 @@ describe('MARC', () => {
101103
{ tags: ['extendedPathECS', 'spitfire', 'C449369'] },
102104
() => {
103105
cy.resetTenant();
104-
cy.waitForAuthRefresh(() => {
105-
cy.login(user.username, user.password);
106-
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
107-
cy.reload();
108-
}, 20_000);
106+
cy.login(user.username, user.password);
107+
ConsortiumManager.checkCurrentTenantInTopMenu(tenantNames.central);
108+
109109
// Step 2: Switch to Member tenant and check the source file
110110
ConsortiumManager.switchActiveAffiliation(tenantNames.central, tenantNames.college);
111111
TopMenuNavigation.navigateToApp(

cypress/e2e/consortia/settings/marc-authority/delete-authority-file-retention-policy-shared-records-member.cy.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ describe('MARC', () => {
6161
testData.baseURL,
6262
).then((sourceId) => {
6363
authorityFileId = sourceId;
64+
cy.wait(70_000); // source file should be processed by scheduled job before assigning
6465
// Create a Shared MARC authority record assigned to the file in Central tenant
6566
MarcAuthorities.createMarcAuthorityViaAPI(
6667
testData.prefix,

cypress/e2e/data-import/importing-marc-authority-files/marc-authority-import-updates-do-not-clear-folio-fields-in-linked-marc-bib.cy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ describe('Data Import', () => {
394394
testData.searchOption,
395395
`${testData.authorityHeading} UPDATED`,
396396
);
397-
MarcAuthorities.selectTitle(`Shared\n${testData.authorityHeading} UPDATED`);
397+
MarcAuthorities.selectTitle(`${testData.authorityHeading} UPDATED`);
398398

399399
// Step 8. Go to Inventory, open the linked instance - verify FOLIO fields are not cleared
400400
TopMenuNavigation.navigateToApp(APPLICATION_NAMES.INVENTORY);

cypress/e2e/data-import/importing-marc-bib-files/delete-linked-field-which-controlled-by-marc-authority.cy.js

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ describe('Data Import', () => {
143143
testData.userProperties = createdUserProperties;
144144

145145
// make sure there are no duplicate records in the system
146-
MarcAuthorities.deleteMarcAuthorityByTitleViaAPI('C377005*');
146+
MarcAuthorities.deleteMarcAuthorityByTitleViaAPI('C377005');
147147

148148
marcFiles.forEach((marcFile) => {
149149
DataImport.uploadFileViaApi(
@@ -159,13 +159,10 @@ describe('Data Import', () => {
159159
});
160160
})
161161
.then(() => {
162-
cy.waitForAuthRefresh(() => {
163-
cy.loginAsAdmin();
164-
TopMenuNavigation.openAppFromDropdown(APPLICATION_NAMES.INVENTORY);
165-
InventoryInstances.waitContentLoading();
166-
cy.reload();
167-
InventoryInstances.waitContentLoading();
168-
}, 20_000);
162+
cy.loginAsAdmin({
163+
path: TopMenu.inventoryPath,
164+
waiter: InventoryInstances.waitContentLoading,
165+
});
169166
InventoryInstances.searchByTitle(createdAuthorityIDs[0]);
170167
InventoryInstances.selectInstance();
171168
InventoryInstance.editMarcBibliographicRecord();
@@ -180,8 +177,6 @@ describe('Data Import', () => {
180177
linkingTagAndValues.rowIndex,
181178
);
182179
QuickMarcEditor.pressSaveAndClose();
183-
cy.wait(1500);
184-
QuickMarcEditor.pressSaveAndClose();
185180
QuickMarcEditor.checkAfterSaveAndClose();
186181
});
187182

@@ -227,14 +222,10 @@ describe('Data Import', () => {
227222
actionProfile.id,
228223
);
229224

230-
cy.waitForAuthRefresh(() => {
231-
cy.login(testData.userProperties.username, testData.userProperties.password, {
232-
path: TopMenu.inventoryPath,
233-
waiter: InventoryInstances.waitContentLoading,
234-
});
235-
cy.reload();
236-
InventoryInstances.waitContentLoading();
237-
}, 20_000);
225+
cy.login(testData.userProperties.username, testData.userProperties.password, {
226+
path: TopMenu.inventoryPath,
227+
waiter: InventoryInstances.waitContentLoading,
228+
});
238229
});
239230
});
240231

0 commit comments

Comments
 (0)