Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FAT-12870 #3539

Merged
merged 1 commit into from May 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -0,0 +1,135 @@
import permissions from '../../../support/dictionary/permissions';
import BulkEditActions from '../../../support/fragments/bulk-edit/bulk-edit-actions';
import BulkEditSearchPane from '../../../support/fragments/bulk-edit/bulk-edit-search-pane';
import HoldingsRecordView from '../../../support/fragments/inventory/holdingsRecordView';
import InventoryInstances from '../../../support/fragments/inventory/inventoryInstances';
import InventorySearchAndFilter from '../../../support/fragments/inventory/inventorySearchAndFilter';
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';
import ExportFile from '../../../support/fragments/data-export/exportFile';

let user;
const item = {
instanceName: `testBulkEdit_${getRandomPostfix()}`,
itemBarcode: getRandomPostfix(),
};
const textWithSpecialCharacters = 'Te;st: [sample] li*nk$text';
const newLinkText = 'New link text';
const holdingUUIDsFileName = `holdingUUIDs_${getRandomPostfix()}.csv`;
const matchedRecordsFileName = `*-Matched-Records-${holdingUUIDsFileName}`;
const previewFileName = `*-Updates-Preview-${holdingUUIDsFileName}`;
const changedRecordsFileName = `*-Changed-Records-${holdingUUIDsFileName}`;

describe('bulk-edit', () => {
describe('in-app approach', () => {
before('create test data', () => {
cy.createTempUser([
permissions.bulkEditView.gui,
permissions.bulkEditEdit.gui,
permissions.inventoryAll.gui,
]).then((userProperties) => {
user = userProperties;

item.instanceId = InventoryInstances.createInstanceViaApi(
item.instanceName,
item.itemBarcode,
);
cy.getHoldings({ limit: 1, query: `"instanceId"="${item.instanceId}"` }).then(
(holdings) => {
item.holdingsHRID = holdings[0].hrid;
FileManager.createFile(`cypress/fixtures/${holdingUUIDsFileName}`, holdings[0].id);
cy.updateHoldingRecord(holdings[0].id, {
...holdings[0],
electronicAccess: [
{
linkText: textWithSpecialCharacters,
uri: 'uri.com',
},
],
});
},
);
cy.login(user.username, user.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
});
});

after('delete test data', () => {
cy.getAdminToken();
InventoryInstances.deleteInstanceAndHoldingRecordAndAllItemsViaApi(item.itemBarcode);
FileManager.deleteFile(`cypress/fixtures/${holdingUUIDsFileName}`);
FileManager.deleteFileFromDownloadsByMask(
matchedRecordsFileName,
changedRecordsFileName,
previewFileName,
);
Users.deleteViaApi(user.userId);
});

it(
'C422230 Verify Bulk Edit for Holding populated with "Link text" in electronic access (firebird)',
{ tags: ['criticalPath', 'firebird'] },
() => {
BulkEditSearchPane.checkHoldingsRadio();
BulkEditSearchPane.selectRecordIdentifier('Holdings UUIDs');
BulkEditSearchPane.uploadFile(holdingUUIDsFileName);
BulkEditSearchPane.checkForUploading(holdingUUIDsFileName);
BulkEditSearchPane.waitFileUploading();
BulkEditActions.downloadMatchedResults();
BulkEditSearchPane.changeShowColumnCheckboxIfNotYet('Electronic access');
BulkEditSearchPane.verifySpecificItemsMatched(textWithSpecialCharacters);
ExportFile.verifyFileIncludes(matchedRecordsFileName, [textWithSpecialCharacters]);
BulkEditActions.openInAppStartBulkEditFrom();
BulkEditActions.verifyRowIcons();
BulkEditActions.verifyOptionsDropdown();
BulkEditActions.isSelectActionAbsent();
BulkEditActions.selectOption('Link text');
let possibleActions = ['Clear field', 'Find (full field search)', 'Replace with'];
BulkEditActions.verifyPossibleActions(possibleActions);
BulkEditActions.selectSecondAction('Clear field');
BulkEditActions.addNewBulkEditFilterString();
BulkEditActions.verifyNewBulkEditRow();
BulkEditActions.verifyOptionAbsentInNewRow('Link text');
BulkEditActions.deleteRow(1);
BulkEditActions.selectSecondAction('Replace with');
BulkEditSearchPane.isConfirmButtonDisabled(true);
BulkEditActions.fillInSecondTextArea(newLinkText);
BulkEditSearchPane.isConfirmButtonDisabled(false);
BulkEditActions.findValue('Link text');
possibleActions = ['Replace with', 'Remove'];
BulkEditActions.verifyPossibleActions(possibleActions);
BulkEditSearchPane.isConfirmButtonDisabled(true);
BulkEditActions.selectSecondAction('Remove');
BulkEditActions.fillInFirstTextArea(textWithSpecialCharacters);
BulkEditSearchPane.isConfirmButtonDisabled(false);
BulkEditActions.selectSecondAction('Replace with');
BulkEditSearchPane.isConfirmButtonDisabled(true);
BulkEditActions.fillInSecondTextArea(newLinkText);
BulkEditActions.confirmChanges();
BulkEditSearchPane.verifyInputLabel(
'1 records will be changed if the Commit changes button is clicked. You may choose Download preview to review all changes prior to saving.',
);
BulkEditActions.verifyChangesInAreYouSureForm('Electronic access', [newLinkText]);
BulkEditActions.downloadPreview();
ExportFile.verifyFileIncludes(previewFileName, [newLinkText]);
BulkEditActions.commitChanges();
BulkEditSearchPane.waitFileUploading();
BulkEditSearchPane.verifyChangesUnderColumns('Electronic access', newLinkText);
BulkEditActions.openActions();
BulkEditActions.downloadChangedCSV();
ExportFile.verifyFileIncludes(changedRecordsFileName, [newLinkText]);

cy.visit(TopMenu.inventoryPath);
InventorySearchAndFilter.switchToHoldings();
InventorySearchAndFilter.searchByParameter('Holdings HRID', item.holdingsHRID);
InventorySearchAndFilter.selectSearchResultItem();
InventorySearchAndFilter.selectViewHoldings();
HoldingsRecordView.verifyElectronicAccess(newLinkText);
},
);
});
});
@@ -0,0 +1,134 @@
import permissions from '../../../support/dictionary/permissions';
import BulkEditActions from '../../../support/fragments/bulk-edit/bulk-edit-actions';
import BulkEditSearchPane from '../../../support/fragments/bulk-edit/bulk-edit-search-pane';
import HoldingsRecordView from '../../../support/fragments/inventory/holdingsRecordView';
import InventoryInstances from '../../../support/fragments/inventory/inventoryInstances';
import InventorySearchAndFilter from '../../../support/fragments/inventory/inventorySearchAndFilter';
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';
import ExportFile from '../../../support/fragments/data-export/exportFile';

let user;
const item = {
instanceName: `testBulkEdit_${getRandomPostfix()}`,
itemBarcode: getRandomPostfix(),
};
const publicNote = 'publicNote';
const newPublicNote = 'new publicNote';
const holdingUUIDsFileName = `holdingUUIDs_${getRandomPostfix()}.csv`;
const matchedRecordsFileName = `*-Matched-Records-${holdingUUIDsFileName}`;
const previewFileName = `*-Updates-Preview-${holdingUUIDsFileName}`;
const changedRecordsFileName = `*-Changed-Records-${holdingUUIDsFileName}`;

describe('bulk-edit', () => {
describe('in-app approach', () => {
before('create test data', () => {
cy.createTempUser([
permissions.bulkEditView.gui,
permissions.bulkEditEdit.gui,
permissions.inventoryAll.gui,
]).then((userProperties) => {
user = userProperties;

item.instanceId = InventoryInstances.createInstanceViaApi(
item.instanceName,
item.itemBarcode,
);
cy.getHoldings({ limit: 1, query: `"instanceId"="${item.instanceId}"` }).then(
(holdings) => {
item.holdingsHRID = holdings[0].hrid;
FileManager.createFile(`cypress/fixtures/${holdingUUIDsFileName}`, holdings[0].id);
cy.updateHoldingRecord(holdings[0].id, {
...holdings[0],
electronicAccess: [
{
publicNote,
uri: 'uri.com',
},
],
});
},
);
cy.login(user.username, user.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
});
});

after('delete test data', () => {
cy.getAdminToken();
InventoryInstances.deleteInstanceAndHoldingRecordAndAllItemsViaApi(item.itemBarcode);
FileManager.deleteFile(`cypress/fixtures/${holdingUUIDsFileName}`);
FileManager.deleteFileFromDownloadsByMask(
matchedRecordsFileName,
changedRecordsFileName,
previewFileName,
);
Users.deleteViaApi(user.userId);
});

it(
'C422240 Verify Bulk Edit for Holding populated with "URL public note" in electronic access (firebird)',
{ tags: ['criticalPath', 'firebird'] },
() => {
BulkEditSearchPane.checkHoldingsRadio();
BulkEditSearchPane.selectRecordIdentifier('Holdings UUIDs');
BulkEditSearchPane.uploadFile(holdingUUIDsFileName);
BulkEditSearchPane.checkForUploading(holdingUUIDsFileName);
BulkEditSearchPane.waitFileUploading();
BulkEditActions.downloadMatchedResults();
BulkEditSearchPane.changeShowColumnCheckboxIfNotYet('Electronic access');
BulkEditSearchPane.verifySpecificItemsMatched(publicNote);
ExportFile.verifyFileIncludes(matchedRecordsFileName, [publicNote]);
BulkEditActions.openInAppStartBulkEditFrom();
BulkEditActions.verifyRowIcons();
BulkEditActions.verifyOptionsDropdown();
BulkEditActions.isSelectActionAbsent();
BulkEditActions.selectOption('URL public note');
let possibleActions = ['Clear field', 'Find (full field search)', 'Replace with'];
BulkEditActions.verifyPossibleActions(possibleActions);
BulkEditActions.selectSecondAction('Clear field');
BulkEditActions.addNewBulkEditFilterString();
BulkEditActions.verifyNewBulkEditRow();
BulkEditActions.verifyOptionAbsentInNewRow('URL public note');
BulkEditActions.deleteRow(1);
BulkEditActions.selectSecondAction('Replace with');
BulkEditActions.fillInSecondTextArea(publicNote);
BulkEditSearchPane.isConfirmButtonDisabled(false);
BulkEditActions.findValue('URL public note');
possibleActions = ['Replace with', 'Remove'];
BulkEditActions.verifyPossibleActions(possibleActions);
BulkEditSearchPane.isConfirmButtonDisabled(true);
BulkEditActions.selectSecondAction('Replace with');
BulkEditSearchPane.isConfirmButtonDisabled(true);
BulkEditActions.fillInFirstTextArea(publicNote);
BulkEditActions.fillInSecondTextArea(newPublicNote);
BulkEditSearchPane.isConfirmButtonDisabled(false);
BulkEditActions.selectSecondAction('Remove');
BulkEditActions.confirmChanges();
BulkEditSearchPane.verifyInputLabel(
'1 records will be changed if the Commit changes button is clicked. You may choose Download preview to review all changes prior to saving.',
);
BulkEditSearchPane.verifyElectronicAccessElementByIndex(4, '');
BulkEditActions.downloadPreview();
ExportFile.verifyFileIncludes(previewFileName, [';uri.com;;;"']);
BulkEditActions.commitChanges();
BulkEditSearchPane.waitFileUploading();
BulkEditSearchPane.verifyElectronicAccessElementByIndex(4, '');
BulkEditActions.openActions();
BulkEditActions.downloadChangedCSV();
ExportFile.verifyFileIncludes(changedRecordsFileName, [';uri.com;;;"']);

cy.visit(TopMenu.inventoryPath);
InventorySearchAndFilter.switchToHoldings();
InventorySearchAndFilter.searchByParameter('Holdings HRID', item.holdingsHRID);
InventorySearchAndFilter.selectSearchResultItem();
InventorySearchAndFilter.selectViewHoldings();
HoldingsRecordView.verifyElectronicAccessByElementIndex(4, '-');
},
);
});
});
Expand Up @@ -89,7 +89,7 @@ describe('bulk-edit', () => {
BulkEditSearchPane.changeShowColumnCheckboxIfNotYet('Electronic access');
BulkEditActions.openInAppStartBulkEditFrom();
BulkEditActions.selectOption('URI');
const possibleActions = ['Clear field', 'Find', 'Replace with'];
const possibleActions = ['Clear field', 'Find (full field search)', 'Replace with'];
BulkEditActions.verifyPossibleActions(possibleActions);
BulkEditActions.selectAction('Clear field');
BulkEditActions.addNewBulkEditFilterString();
Expand Down