Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/folio-org/stripes-testing
Browse files Browse the repository at this point in the history
…into FAT-13330
  • Loading branch information
TetianaParanich committed May 7, 2024
2 parents b0cb625 + bddda92 commit cea04b2
Show file tree
Hide file tree
Showing 18 changed files with 961 additions and 26 deletions.
Expand Up @@ -26,7 +26,7 @@ describe('Bulk Edit - Query', () => {
InventoryInstances.createInstanceViaApi(item.instanceName, item.barcode);
cy.getItems({ limit: 1, expandAll: true, query: `"barcode"=="${item.barcode}"` }).then(
(res) => {
res.temporaryLocation = { id: '184aae84-a5bf-4c6a-85ba-4a7c73026cd5' };
res.temporaryLocation = { id: LOCATION_IDS.ONLINE };
cy.updateItemViaApi(res);
},
);
Expand Down
@@ -0,0 +1,104 @@
import permissions from '../../../support/dictionary/permissions';
import BulkEditSearchPane from '../../../support/fragments/bulk-edit/bulk-edit-search-pane';
import TopMenu from '../../../support/fragments/topMenu';
import Users from '../../../support/fragments/users/users';
import QueryModal, { itemFieldValues } from '../../../support/fragments/bulk-edit/query-modal';
import InventoryInstances from '../../../support/fragments/inventory/inventoryInstances';
import getRandomPostfix from '../../../support/utils/stringTools';
import { ITEM_STATUS_NAMES } from '../../../support/constants';
import UserEdit from '../../../support/fragments/users/userEdit';
import Checkout from '../../../support/fragments/checkout/checkout';
import CheckInActions from '../../../support/fragments/check-in-actions/checkInActions';
import ServicePoints from '../../../support/fragments/settings/tenant/servicePoints/servicePoints';
import ExportFile from '../../../support/fragments/data-export/exportFile';
import FileManager from '../../../support/utils/fileManager';
import BulkEditActions from '../../../support/fragments/bulk-edit/bulk-edit-actions';

let user;
let servicePointId;
const item = {
instanceName: `testBulkEdit_${getRandomPostfix()}`,
barcode: getRandomPostfix(),
};
const matchedRecordsFileName = '*-Matched-Records-Query-*';

describe('Bulk Edit - Query', () => {
before('create test data', () => {
cy.getAdminToken();
cy.createTempUser([
permissions.bulkEditView.gui,
permissions.uiInventoryViewCreateEditItems.gui,
permissions.bulkEditQueryView.gui,
]).then((userProperties) => {
user = userProperties;

InventoryInstances.createInstanceViaApi(item.instanceName, item.barcode);
ServicePoints.getViaApi({ limit: 1, query: 'name=="Circ Desk 1"' })
.then((servicePoints) => {
servicePointId = servicePoints[0].id;
})
.then(() => {
UserEdit.addServicePointViaApi(servicePointId, user.userId, servicePointId);
Checkout.checkoutItemViaApi({
itemBarcode: item.barcode,
servicePointId,
userBarcode: user.barcode,
});
});
cy.login(user.username, user.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
});
});

after('delete test data', () => {
cy.getAdminToken();
Users.deleteViaApi(user.userId);
CheckInActions.checkinItemViaApi({
itemBarcode: item.barcode,
servicePointId,
checkInDate: new Date().toISOString(),
});
InventoryInstances.deleteInstanceAndHoldingRecordAndAllItemsViaApi(item.barcode);
FileManager.deleteFileFromDownloadsByMask(matchedRecordsFileName);
});

it(
'C436737 Render preview after query executed (Items - View) (firebird)',
{ tags: ['criticalPath', 'firebird'] },
() => {
BulkEditSearchPane.openQuerySearch();
BulkEditSearchPane.checkItemsRadio();
BulkEditSearchPane.clickBuildQueryButton();
QueryModal.verify();
QueryModal.verifyFieldsSortedAlphabetically();
QueryModal.selectField(itemFieldValues.itemStatus);
QueryModal.verifySelectedField(itemFieldValues.itemStatus);
QueryModal.verifyQueryAreaContent('(item_status )');
QueryModal.verifyOperatorColumn();
QueryModal.selectOperator('in');
QueryModal.verifyQueryAreaContent('(item_status in )');
QueryModal.verifyValueColumn();
QueryModal.fillInValueMultiselect(ITEM_STATUS_NAMES.CHECKED_OUT);
QueryModal.fillInValueMultiselect(ITEM_STATUS_NAMES.AGED_TO_LOST);
QueryModal.verifyQueryAreaContent(
`(item_status in ("${ITEM_STATUS_NAMES.CHECKED_OUT}","${ITEM_STATUS_NAMES.AGED_TO_LOST}"))`,
);
QueryModal.testQueryDisabled(false);
QueryModal.runQueryDisabled();
QueryModal.clickTestQuery();
QueryModal.verifyPreviewOfRecordsMatched();
QueryModal.clickRunQuery();
QueryModal.verifyClosed();
BulkEditSearchPane.verifySpecificTabHighlighted('Query');
BulkEditSearchPane.isBuildQueryButtonDisabled();
BulkEditSearchPane.isHoldingsRadioChecked(false);
BulkEditSearchPane.isInstancesRadioChecked(false);
BulkEditSearchPane.isItemsRadioChecked(true);
BulkEditActions.downloadMatchedResults();
BulkEditActions.startBulkEditAbsent();
ExportFile.verifyFileIncludes(matchedRecordsFileName, [item.barcode]);
},
);
});
87 changes: 83 additions & 4 deletions cypress/e2e/bulk-edit/query/bulk-edit-query-landing.cy.js
Expand Up @@ -2,12 +2,30 @@ import permissions from '../../../support/dictionary/permissions';
import BulkEditSearchPane from '../../../support/fragments/bulk-edit/bulk-edit-search-pane';
import TopMenu from '../../../support/fragments/topMenu';
import Users from '../../../support/fragments/users/users';
import QueryModal, {
usersFieldValues,
stringStoresUuidOperators,
booleanOperators,
} from '../../../support/fragments/bulk-edit/query-modal';
import { patronGroupNames, patronGroupUuids } from '../../../support/constants';

let user;
let secondUser;

describe('Bulk Edit - Query', () => {
before('create test data', () => {
cy.getAdminToken();
cy.createTempUser([
permissions.bulkEditCsvEdit.gui,
permissions.bulkEditCsvView.gui,
permissions.bulkEditView.gui,
permissions.bulkEditUpdateRecords.gui,
permissions.uiUsersView.gui,
permissions.uiUserEdit.gui,
permissions.bulkEditQueryView.gui,
]).then((userProperties) => {
secondUser = userProperties;
});
cy.createTempUser([
permissions.bulkEditCsvEdit.gui,
permissions.bulkEditCsvView.gui,
Expand All @@ -16,22 +34,23 @@ describe('Bulk Edit - Query', () => {
permissions.bulkEditQueryView.gui,
]).then((userProperties) => {
user = userProperties;
cy.login(user.username, user.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
});
});

after('delete test data', () => {
cy.getAdminToken();
Users.deleteViaApi(user.userId);
Users.deleteViaApi(secondUser.userId);
});

it(
'C436871 Verify Bulk Edit Query tab (firebird)',
{ tags: ['criticalPath', 'firebird'] },
() => {
cy.login(user.username, user.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
BulkEditSearchPane.openQuerySearch();
BulkEditSearchPane.verifyInputLabel(
'Select a record type and then click the Build query button.',
Expand All @@ -44,4 +63,64 @@ describe('Bulk Edit - Query', () => {
BulkEditSearchPane.isBuildQueryButtonDisabled(false);
},
);

it(
'C436746 Verify actions in the "Build query" form (firebird)',
{ tags: ['criticalPath', 'firebird'] },
() => {
cy.login(secondUser.username, secondUser.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
BulkEditSearchPane.openQuerySearch();
BulkEditSearchPane.verifyInputLabel(
'Select a record type and then click the Build query button.',
);
BulkEditSearchPane.isBuildQueryButtonDisabled();
BulkEditSearchPane.isUsersRadioChecked(false);
BulkEditSearchPane.checkUsersRadio();
BulkEditSearchPane.clickBuildQueryButton();
QueryModal.verify();
QueryModal.clickXButtton();
QueryModal.absent();
BulkEditSearchPane.clickBuildQueryButton();
QueryModal.verify();
QueryModal.selectField(usersFieldValues.userActive);
QueryModal.verifySelectedField(usersFieldValues.userActive);
QueryModal.verifyQueryAreaContent('(user_active )');
QueryModal.verifyOperatorsList(booleanOperators);
QueryModal.selectOperator('==');
QueryModal.verifyQueryAreaContent('(user_active == )');
QueryModal.verifyValueColumn();
QueryModal.selectValueFromSelect('True');
QueryModal.testQueryDisabled(false);
QueryModal.runQueryDisabled();
QueryModal.verifyQueryAreaContent('(user_active == "true")');
QueryModal.addNewRow();
QueryModal.verifyBooleanColumn();
QueryModal.verifyEmptyField(1);
QueryModal.verifyEmptyOperator(1);
QueryModal.verifyEmptyValue(1);
QueryModal.verifyPlusAndTrashButtonsDisabled(1, false, false);
QueryModal.verifyPlusAndTrashButtonsDisabled(0, false, true);
QueryModal.selectField(usersFieldValues.patronGroup, 1);
QueryModal.verifyQueryAreaContent('(user_active == "true") AND (user_patron_group )');
QueryModal.testQueryDisabled();
QueryModal.runQueryDisabled();
QueryModal.verifyOperatorColumn();
QueryModal.selectOperator('==', 1);
QueryModal.verifyOperatorsList(stringStoresUuidOperators, 1);
QueryModal.chooseValueSelect(patronGroupNames.STAFF, 1);
QueryModal.testQueryDisabled(false);
QueryModal.runQueryDisabled();
QueryModal.verifyQueryAreaContent(
`(user_active == "true") AND (user_patron_group == "${patronGroupUuids.STAFF}")`,
);
QueryModal.clickGarbage(1);
QueryModal.testQueryDisabled(false);
QueryModal.runQueryDisabled();
QueryModal.clickCancel();
QueryModal.absent();
},
);
});
@@ -0,0 +1,129 @@
import permissions from '../../../support/dictionary/permissions';
import InventorySearchAndFilter from '../../../support/fragments/inventory/inventorySearchAndFilter';
import SelectInstanceModal from '../../../support/fragments/orders/modals/selectInstanceModal';
import NewOrder from '../../../support/fragments/orders/newOrder';
import OrderLines from '../../../support/fragments/orders/orderLines';
import Orders from '../../../support/fragments/orders/orders';
import NewOrganization from '../../../support/fragments/organizations/newOrganization';
import Organizations from '../../../support/fragments/organizations/organizations';
import TopMenu from '../../../support/fragments/topMenu';
import Users from '../../../support/fragments/users/users';
import DataImport from '../../../support/fragments/data_import/dataImport';
import InventoryInstance from '../../../support/fragments/inventory/inventoryInstance';
import getRandomPostfix from '../../../support/utils/stringTools';
import { DEFAULT_JOB_PROFILE_NAMES } from '../../../support/constants';

describe('Inventory', () => {
describe('Search in Inventory', () => {
const organization = {
...NewOrganization.defaultUiOrganizations,
paymentMethod: 'EFT',
};
const order = {
...NewOrder.defaultOneTimeOrder,
manualPo: false,
};
let orderNumber;
let user;
let orderID;
const lccnOption = 'LCCN, normalized';

const searchQueries = [
'n79021425',
' n 79021425 ',
'n 79021425',
'n 79021425',
'n79021425 ',
'n79021425 ',
' n79021425',
' n79021425',
' n 79021425 ',
];

const searchResults = [
'C442799 Test LCCN normalized record 1 (two leading spaces, one trailing space, two internal spaces)',
'C442799 Test LCCN normalized record 2 (one space internal)',
'C442799 Test LCCN normalized record 3 (two spaces internal)',
'C442799 Test LCCN normalized record 4 (one space trailing)',
'C442799 Test LCCN normalized record 5 (two spaces trailing)',
'C442799 Test LCCN normalized record 6 (one space leading)',
'C442799 Test LCCN normalized record 7 (two spaces leading)',
'C442799 Test LCCN normalized record 8 (two spaces everywhere)',
'C442799 Test LCCN normalized record 9 (no spaces)',
];

const marcFile = {
marc: 'marcBibFileForC442799.mrc',
fileName: `testMarcFileC442799.${getRandomPostfix()}.mrc`,
jobProfileToRun: DEFAULT_JOB_PROFILE_NAMES.CREATE_INSTANCE_AND_SRS,
propertyName: 'instance',
};

const createdRecordIDs = [];

before(() => {
cy.getAdminToken();

Organizations.createOrganizationViaApi(organization).then((response) => {
organization.id = response;
order.vendor = response;
});
cy.createOrderApi(order).then((response) => {
orderNumber = response.body.poNumber;
orderID = response.body.id;
});
DataImport.uploadFileViaApi(marcFile.marc, marcFile.fileName, marcFile.jobProfileToRun).then(
(response) => {
response.forEach((record) => {
createdRecordIDs.push(record[marcFile.propertyName].id);
});
},
);
cy.createTempUser([permissions.inventoryAll.gui, permissions.uiOrdersCreate.gui]).then(
(userProperties) => {
user = userProperties;

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

after(() => {
cy.getAdminToken();
createdRecordIDs.forEach((id) => {
InventoryInstance.deleteInstanceViaApi(id);
});
Orders.deleteOrderViaApi(orderID);
Organizations.deleteOrganizationViaApi(organization.id);
Users.deleteViaApi(user.userId);
});

it(
'C442799 "Select instance" plug-in | Search for "MARC bibliographic" by "LCCN, normalized" option when "LCCN" (010 $a) has (leading, internal, trailing) spaces. (spitfire)',
{ tags: ['criticalPath', 'spitfire'] },
() => {
Orders.searchByParameter('PO number', orderNumber);
Orders.selectFromResultsList(orderNumber);
OrderLines.addPOLine();
OrderLines.clickTitleLookUp();
InventorySearchAndFilter.instanceTabIsDefault();
SelectInstanceModal.clickSearchOptionSelect();
SelectInstanceModal.checkSearchOptionIncluded(lccnOption);

InventorySearchAndFilter.instanceTabIsDefault();
searchQueries.forEach((query) => {
SelectInstanceModal.chooseSearchOption(lccnOption);
SelectInstanceModal.searchByName(query);
searchResults.forEach((expectedResult) => {
InventorySearchAndFilter.verifySearchResult(expectedResult);
});
SelectInstanceModal.clickResetAllButton();
SelectInstanceModal.checkTableContent();
});
},
);
});
});

0 comments on commit cea04b2

Please sign in to comment.