Skip to content

Commit

Permalink
FAT-16766/C446039 (#4264)
Browse files Browse the repository at this point in the history
* Rename the files

* Add the test case C446039
  • Loading branch information
sviatlana-stsiapanava authored Sep 30, 2024
1 parent affa9e4 commit 028a69d
Show file tree
Hide file tree
Showing 10 changed files with 253 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
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 BulkEditFiles from '../../../support/fragments/bulk-edit/bulk-edit-files';
import InventoryInstances from '../../../support/fragments/inventory/inventoryInstances';
import InventorySearchAndFilter from '../../../support/fragments/inventory/inventorySearchAndFilter';
import TopMenu from '../../../support/fragments/topMenu';
import TopMenuNavigation from '../../../support/fragments/topMenuNavigation';
import Users from '../../../support/fragments/users/users';
import FileManager from '../../../support/utils/fileManager';
import HoldingsRecordView from '../../../support/fragments/inventory/holdingsRecordView';
import getRandomPostfix from '../../../support/utils/stringTools';
import {
APPLICATION_NAMES,
BULK_EDIT_TABLE_COLUMN_HEADERS,
LOCATION_NAMES,
HOLDING_NOTE_TYPES,
} from '../../../support/constants';

let user;
const instance = {
title: `C446039 testBulkEdit_${getRandomPostfix()}`,
itemBarcode: getRandomPostfix(),
};
const copyNoteText = 'Copy note text';
const holdingUUIDsFileName = `validHoldingUUIDs_${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.clearLocalStorage();
cy.createTempUser([
permissions.bulkEditView.gui,
permissions.bulkEditEdit.gui,
permissions.inventoryAll.gui,
]).then((userProperties) => {
user = userProperties;

instance.id = InventoryInstances.createInstanceViaApi(instance.title, instance.itemBarcode);
cy.getHoldings({
limit: 1,
query: `"instanceId"="${instance.id}"`,
}).then((holdings) => {
instance.holdingHRID = holdings[0].hrid;
instance.holdingsUUID = holdings[0].id;

FileManager.createFile(`cypress/fixtures/${holdingUUIDsFileName}`, holdings[0].id);
});

cy.login(user.username, user.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
});
});

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

it(
'C446039 Verify column names under "Show columns" section - holdings (firebird)',
{ tags: ['criticalPath', 'firebird'] },
() => {
BulkEditSearchPane.verifyDragNDropRecordTypeIdentifierArea('Holdings', 'Holdings UUIDs');
BulkEditSearchPane.uploadFile(holdingUUIDsFileName);
BulkEditSearchPane.waitFileUploading();
BulkEditSearchPane.verifyMatchedResults(instance.holdingHRID);
BulkEditActions.openActions();
BulkEditSearchPane.verifyHoldingActionShowColumns();
BulkEditSearchPane.verifyCheckedCheckboxesPresentInTheTable();
BulkEditSearchPane.verifyResultsUnderColumns(
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_HRID,
instance.holdingHRID,
);
BulkEditSearchPane.verifyResultsUnderColumns(
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.SUPPRESS_FROM_DISCOVERY,
'',
);
BulkEditSearchPane.verifyResultsUnderColumns(
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.SOURCE,
'FOLIO',
);
BulkEditSearchPane.verifyResultsUnderColumns(
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_TYPE,
'',
);
BulkEditSearchPane.verifyResultsUnderColumns(
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_PERMANENT_LOCATION,
LOCATION_NAMES.MAIN_LIBRARY_UI,
);

const uncheckedColumnHeaders = [
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_PERMANENT_LOCATION,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_TYPE,
];
const checkedColumnHeaders = [
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.COPY_NOTE,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.ELECTRONIC_BOOKPLATE_NOTE,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.ADMINISTRATIVE_NOTE,
];

BulkEditSearchPane.changeShowColumnCheckbox(
...checkedColumnHeaders,
...uncheckedColumnHeaders,
);
cy.wait(1000);

checkedColumnHeaders.forEach((columnHeader) => {
BulkEditSearchPane.verifyResultColumnTitles(columnHeader);
});
uncheckedColumnHeaders.forEach((columnHeader) => {
BulkEditSearchPane.verifyResultColumnTitlesDoNotInclude(columnHeader);
});

BulkEditActions.openActions();
BulkEditActions.downloadMatchedResults();
BulkEditFiles.verifyValueInRowByUUID(
matchedRecordsFileName,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_UUID,
instance.holdingsUUID,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_HRID,
instance.holdingHRID,
);

const defaultColumnHeaders = Object.values(
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS,
);

BulkEditFiles.verifyColumnHeaderExistsInCsvFile(
matchedRecordsFileName,
defaultColumnHeaders,
);
BulkEditActions.openInAppStartBulkEditFrom();
BulkEditActions.selectOption(HOLDING_NOTE_TYPES.COPY_NOTE);
cy.wait(1000);
BulkEditActions.selectSecondAction('Add note');
BulkEditActions.fillInSecondTextArea(copyNoteText);
BulkEditActions.confirmChanges();
BulkEditActions.verifyMessageBannerInAreYouSureForm(1);
BulkEditActions.verifyChangesInAreYouSureForm(
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_HRID,
[instance.holdingHRID],
);
BulkEditActions.verifyChangesInAreYouSureForm(
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.COPY_NOTE,
[copyNoteText],
);

const selectedColumnHeaders = [
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_HRID,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.SUPPRESS_FROM_DISCOVERY,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.SOURCE,
...checkedColumnHeaders,
];

selectedColumnHeaders.forEach((selectedColumnHeader) => {
BulkEditSearchPane.verifyAreYouSureColumnTitlesInclude(selectedColumnHeader);
});
uncheckedColumnHeaders.forEach((uncheckedColumnHeader) => {
BulkEditSearchPane.verifyAreYouSureColumnTitlesDoNotInclude(uncheckedColumnHeader);
});

BulkEditActions.downloadPreview();
BulkEditFiles.verifyValueInRowByUUID(
previewFileName,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_UUID,
instance.holdingsUUID,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.COPY_NOTE,
copyNoteText,
);
BulkEditFiles.verifyColumnHeaderExistsInCsvFile(previewFileName, defaultColumnHeaders);
BulkEditActions.commitChanges();
BulkEditSearchPane.waitFileUploading();
BulkEditActions.verifySuccessBanner();
BulkEditSearchPane.verifyExactChangesUnderColumnsByIdentifierInChangesAccordion(
instance.holdingHRID,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.COPY_NOTE,
copyNoteText,
);

selectedColumnHeaders.forEach((selectedColumnHeader) => {
BulkEditSearchPane.verifyChangedColumnTitlesInclude(selectedColumnHeader);
});
uncheckedColumnHeaders.forEach((uncheckedColumnHeader) => {
BulkEditSearchPane.verifyChangedColumnTitlesDoNotInclude(uncheckedColumnHeader);
});

BulkEditActions.openActions();
BulkEditSearchPane.verifyCheckedCheckboxesPresentInTheTable();
BulkEditActions.downloadChangedCSV();
BulkEditFiles.verifyValueInRowByUUID(
changedRecordsFileName,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.HOLDINGS_UUID,
instance.holdingsUUID,
BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_HOLDINGS.COPY_NOTE,
copyNoteText,
);
BulkEditFiles.verifyColumnHeaderExistsInCsvFile(previewFileName, defaultColumnHeaders);

TopMenuNavigation.navigateToApp(APPLICATION_NAMES.INVENTORY);
InventorySearchAndFilter.switchToHoldings();
InventorySearchAndFilter.searchHoldingsByHRID(instance.holdingHRID);
InventorySearchAndFilter.selectViewHoldings();
HoldingsRecordView.waitLoading();
HoldingsRecordView.checkNotesByType(0, HOLDING_NOTE_TYPES.COPY_NOTE, copyNoteText);
},
);
});
});
13 changes: 13 additions & 0 deletions cypress/support/fragments/bulk-edit/bulk-edit-files.js
Original file line number Diff line number Diff line change
Expand Up @@ -234,4 +234,17 @@ export default {
});
});
},

verifyColumnHeaderExistsInCsvFile(fileName, columnHeaders) {
FileManager.findDownloadedFilesByMask(fileName).then((downloadedFilenames) => {
FileManager.readFile(downloadedFilenames[0]).then((actualContent) => {
const values = this.getValuesFromCSVFile(actualContent);
const stringWithHeaders = values.shift();

columnHeaders.forEach((columnHeader) => {
expect(stringWithHeaders).to.include(columnHeader);
});
});
});
},
};
30 changes: 19 additions & 11 deletions cypress/support/fragments/bulk-edit/bulk-edit-search-pane.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
} from '../../../../interactors';

const bulkEditIcon = Image({ alt: 'View and manage bulk edit' });
const resultsAccordion = Accordion('Preview of record matched');
const matchedAccordion = Accordion('Preview of record matched');
const changesAccordion = Accordion('Preview of record changed');
const errorsAccordion = Accordion('Errors');
const bulkEditsAccordion = Accordion('Bulk edits');
Expand Down Expand Up @@ -88,7 +88,7 @@ export default {
},

verifyPopulatedPreviewPage() {
cy.expect([errorsAccordion.exists(), resultsAccordion.exists(), actions.exists()]);
cy.expect([errorsAccordion.exists(), matchedAccordion.exists(), actions.exists()]);
},

actionsIsShown() {
Expand Down Expand Up @@ -404,14 +404,14 @@ export default {

verifyMatchedResults(...values) {
values.forEach((value) => {
cy.expect(resultsAccordion.find(MultiColumnListCell({ content: value })).exists());
cy.expect(matchedAccordion.find(MultiColumnListCell({ content: value })).exists());
});
cy.expect(resultsAccordion.has({ itemsAmount: values.length.toString() }));
cy.expect(matchedAccordion.has({ itemsAmount: values.length.toString() }));
},

verifySpecificItemsMatched(...values) {
values.forEach((value) => {
cy.expect(resultsAccordion.find(MultiColumnListCell({ content: including(value) })).exists());
cy.expect(matchedAccordion.find(MultiColumnListCell({ content: including(value) })).exists());
});
},

Expand All @@ -420,7 +420,7 @@ export default {
},

matchedAccordionIsAbsent() {
cy.expect(resultsAccordion.absent());
cy.expect(matchedAccordion.absent());
},

verifyUserBarcodesResultAccordion() {
Expand Down Expand Up @@ -504,9 +504,9 @@ export default {
},

verifyExactChangesUnderColumnsByIdentifierInResultsAccordion(identifier, columnName, value) {
cy.then(() => resultsAccordion.find(MultiColumnListCell(identifier)).row()).then((index) => {
cy.then(() => matchedAccordion.find(MultiColumnListCell(identifier)).row()).then((index) => {
cy.expect(
resultsAccordion
matchedAccordion
.find(MultiColumnListRow({ indexRow: `row-${index}` }))
.find(MultiColumnListCell({ column: columnName, content: value }))
.exists(),
Expand Down Expand Up @@ -755,7 +755,7 @@ export default {

verifyResultsUnderColumns(columnName, value) {
cy.expect(
resultsAccordion.find(MultiColumnListCell({ column: columnName, content: value })).exists(),
matchedAccordion.find(MultiColumnListCell({ column: columnName, content: value })).exists(),
);
},

Expand All @@ -777,17 +777,25 @@ export default {
},

verifyResultColumnTitles(title) {
cy.expect(resultsAccordion.find(MultiColumnListHeader(title)).exists());
cy.expect(matchedAccordion.find(MultiColumnListHeader(title)).exists());
},

verifyResultColumnTitlesDoNotInclude(title) {
cy.expect(resultsAccordion.find(MultiColumnListHeader(title)).absent());
cy.expect(matchedAccordion.find(MultiColumnListHeader(title)).absent());
},

verifyAreYouSureColumnTitlesInclude(title) {
cy.expect(areYouSureForm.find(MultiColumnListHeader(title)).exists());
},

verifyAreYouSureColumnTitlesDoNotInclude(title) {
cy.expect(areYouSureForm.find(MultiColumnListHeader(title)).absent());
},

verifyChangedColumnTitlesInclude(title) {
cy.expect(changesAccordion.find(MultiColumnListHeader(title)).exists());
},

verifyChangedColumnTitlesDoNotInclude(title) {
cy.expect(changesAccordion.find(MultiColumnListHeader(title)).absent());
},
Expand Down

0 comments on commit 028a69d

Please sign in to comment.