Skip to content

Commit

Permalink
Merge branch 'master' into C369049
Browse files Browse the repository at this point in the history
  • Loading branch information
KarapetyanSofia committed Dec 6, 2023
2 parents f8040a6 + b69b641 commit fe748e3
Show file tree
Hide file tree
Showing 250 changed files with 3,841 additions and 684 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
import TopMenu from '../../../support/fragments/topMenu';
import permissions from '../../../support/dictionary/permissions';
import BulkEditSearchPane from '../../../support/fragments/bulk-edit/bulk-edit-search-pane';
import FileManager from '../../../support/utils/fileManager';
import getRandomPostfix from '../../../support/utils/stringTools';
import BulkEditActions from '../../../support/fragments/bulk-edit/bulk-edit-actions';
import Users from '../../../support/fragments/users/users';
import ExportFile from '../../../support/fragments/data-export/exportFile';
import DateTools from '../../../support/utils/dateTools';

let user;
let updatedDate;
const userUUIDsFileName = `userUUIDs_${getRandomPostfix()}.csv`;
const editedFileName = `edited-records-${getRandomPostfix()}.csv`;
const matchedRecordsFileName = `*-Matched-Records-${userUUIDsFileName}`;
const changedRecordsFileName = `*-Changed-Records-${userUUIDsFileName}`;
const previewOfProposedChangesFileName = `*-Updates-Preview-${userUUIDsFileName}`;
const updatedRecordsFileName = `*-Changed-Records*-${userUUIDsFileName}`;
const today = DateTools.getFormattedDate({ date: new Date() }, 'YYYY-MM-DD');

describe('bulk-edit', () => {
describe('csv approach', () => {
before('create test data', () => {
cy.createTempUser([
permissions.bulkEditLogsView.gui,
permissions.bulkEditCsvEdit.gui,
permissions.uiUserEdit.gui,
]).then((userProperties) => {
user = userProperties;
cy.login(user.username, user.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
FileManager.createFile(`cypress/fixtures/${userUUIDsFileName}`, user.userId);
cy.getUsers({ limit: 1, query: `"username"="${user.username}"` }).then((users) => {
updatedDate = users[0].updatedDate;
});
});
});

after('delete test data', () => {
cy.getAdminToken();
FileManager.deleteFile(`cypress/fixtures/${userUUIDsFileName}`);
FileManager.deleteFile(`cypress/fixtures/${editedFileName}`);
Users.deleteViaApi(user.userId);
FileManager.deleteFileFromDownloadsByMask(
userUUIDsFileName,
matchedRecordsFileName,
previewOfProposedChangesFileName,
updatedRecordsFileName,
);
});

it(
'C411714 Verify that "Created date" and "Updated date" fields are system updated in User Bulk edit (Local approach) (firebird)',
{ tags: ['criticalPath', 'firebird'] },
() => {
BulkEditSearchPane.checkUsersRadio();
BulkEditSearchPane.selectRecordIdentifier('User UUIDs');
BulkEditSearchPane.uploadFile(userUUIDsFileName);
BulkEditSearchPane.waitFileUploading();

const newName = `testName_${getRandomPostfix()}`;
BulkEditActions.downloadMatchedResults();
BulkEditSearchPane.verifyUsersActionShowColumns();
BulkEditSearchPane.verifyCheckboxesAbsent('Record created', 'Record updated');
const userColumns = [
'User name',
'User id',
'External system id',
'Barcode',
'Active',
'Type',
'Patron group',
'Departments',
'Proxy for',
'Last name',
'First name',
'Middle name',
'Preferred first name',
'Email',
'Phone',
'Mobile phone',
'Addresses',
'Preferred contact type id',
'Enrollment date',
'Expiration date',
'Tags',
'Custom fields',
];
ExportFile.verifyFileIncludes(matchedRecordsFileName, ['Date of birth', userColumns]);
ExportFile.verifyFileIncludes(
matchedRecordsFileName,
['Created date', 'Updated date'],
false,
);
BulkEditActions.prepareValidBulkEditFile(
matchedRecordsFileName,
editedFileName,
'testPermFirst',
newName,
);

BulkEditActions.openStartBulkEditForm();
BulkEditSearchPane.uploadFile(editedFileName);
BulkEditSearchPane.waitFileUploading();
BulkEditActions.clickNext();
BulkEditActions.commitChanges();
BulkEditSearchPane.verifyChangedResults(newName);
BulkEditActions.openActions();
BulkEditActions.downloadChangedCSV();

ExportFile.verifyFileIncludes(changedRecordsFileName, [
'Date Of Birth',
userColumns,
newName,
]);
ExportFile.verifyFileIncludes(
changedRecordsFileName,
['Created date', 'Updated date'],
false,
);

BulkEditSearchPane.openLogsSearch();
BulkEditSearchPane.verifyLogsPane();
BulkEditSearchPane.checkUsersCheckbox();

BulkEditSearchPane.clickActionsRunBy(user.username);
BulkEditSearchPane.verifyLogsRowActionWhenCompleted();
BulkEditSearchPane.downloadFileUsedToTrigger();
ExportFile.verifyFileIncludes(userUUIDsFileName, [user.userId]);

BulkEditSearchPane.downloadFileWithMatchingRecords();
ExportFile.verifyFileIncludes(matchedRecordsFileName, ['Date of birth', userColumns]);

BulkEditSearchPane.downloadFileWithProposedChanges();
ExportFile.verifyFileIncludes(previewOfProposedChangesFileName, [
'Date of birth',
userColumns,
newName,
]);

BulkEditSearchPane.downloadFileWithUpdatedRecords();
ExportFile.verifyFileIncludes(updatedRecordsFileName, [
'Date Of Birth',
userColumns,
newName,
]);

cy.getUsers({ limit: 1, query: `"username"="${user.username}"` }).then((users) => {
cy.expect(users[0].updatedDate).to.include(today);
cy.expect(users[0].updatedDate).to.not.eq(updatedDate);
});
},
);
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import Permissions from '../../../support/dictionary/permissions';
import BulkEditSearchPane from '../../../support/fragments/bulk-edit/bulk-edit-search-pane';
import TopMenu from '../../../support/fragments/topMenu';
import TopMenuNavigation from '../../../support/fragments/topMenuNavigation';
import Users from '../../../support/fragments/users/users';
import UsersSearchPane from '../../../support/fragments/users/usersSearchPane';
import FileManager from '../../../support/utils/fileManager';
import getRandomPostfix from '../../../support/utils/stringTools';

let user;
const userBarcodesFileName = `userBarcodes_${getRandomPostfix()}.csv`;

describe('bulk-edit', () => {
describe('in-app approach', () => {
before('create test data', () => {
cy.createTempUser([
Permissions.bulkEditView.gui,
Permissions.bulkEditEdit.gui,
Permissions.bulkEditUpdateRecords.gui,
Permissions.uiUsersView.gui,
Permissions.bulkEditCsvView.gui,
Permissions.bulkEditCsvEdit.gui,
]).then((userProperties) => {
user = userProperties;
cy.login(user.username, user.password, {
path: TopMenu.bulkEditPath,
waiter: BulkEditSearchPane.waitLoading,
});
FileManager.createFile(`cypress/fixtures/${userBarcodesFileName}`, user.barcode);
});
});

after('delete test data', () => {
Users.deleteViaApi(user.userId);
FileManager.deleteFile(`cypress/fixtures/${userBarcodesFileName}`);
});

it(
'C374150 Verify Bulk edit state when navigating to another app and back-- In app + Local (firebird) (TaaS)',
{ tags: ['extendedPath', 'firebird'] },
() => {
BulkEditSearchPane.checkUsersRadio();
BulkEditSearchPane.selectRecordIdentifier('User Barcodes');
BulkEditSearchPane.verifyDragNDropUsersBarcodesArea();
BulkEditSearchPane.isDragAndDropAreaDisabled(false);

BulkEditSearchPane.uploadFile(userBarcodesFileName);
BulkEditSearchPane.checkForUploading(userBarcodesFileName);
BulkEditSearchPane.waitFileUploading();
BulkEditSearchPane.verifyMatchedResults(user.barcode);

TopMenuNavigation.navigateToApp('Users');
UsersSearchPane.waitLoading();
UsersSearchPane.searchByUsername(user.username);

TopMenuNavigation.navigateToApp('Bulk edit');
BulkEditSearchPane.verifyMatchedResults(user.barcode);
cy.reload();
BulkEditSearchPane.verifyMatchedResults(user.barcode);
},
);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import InventorySearchAndFilter from '../../../../support/fragments/inventory/in
import ItemRecordView from '../../../../support/fragments/inventory/item/itemRecordView';
import TopMenuNavigation from '../../../../support/fragments/topMenuNavigation';
import InstanceRecordView from '../../../../support/fragments/inventory/instanceRecordView';
import InventoryInstance from '../../../../support/fragments/inventory/inventoryInstance';

// TO DO: remove ignoring errors. Now when you click on one of the buttons, some promise in the application returns false
Cypress.on('uncaught:exception', () => false);
Expand Down Expand Up @@ -140,7 +139,7 @@ describe('Bulk Edit - Logs', () => {
);

TopMenuNavigation.navigateToApp('Inventory');
InventoryInstance.searchByTitle(item.instanceName);
InventoryInstances.searchByTitle(item.instanceName);
InventoryInstances.selectInstance();
InstanceRecordView.verifyMarkAsSuppressedFromDiscovery();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { DevTeams, TestTypes, Permissions } from '../../support/dictionary';
import { Permissions } from '../../support/dictionary';
import { Locations, ServicePoints } from '../../support/fragments/settings/tenant';
import InventoryInstances from '../../support/fragments/inventory/inventoryInstances';
import CheckInActions from '../../support/fragments/check-in-actions/checkInActions';
Expand Down Expand Up @@ -76,7 +76,7 @@ describe('Circulation log', () => {

it(
'C368490 Verify the icon "..." in "Actions" column (volaris) (TaaS)',
{ tags: [TestTypes.extendedPath, DevTeams.volaris] },
{ tags: ['extendedPath', 'volaris'] },
() => {
// On the "Loan" accordion on the "Search & filter" pane check the "Checked out" checkbox to retrieve result list with at least 1 circulation action => Click "Apply" button
SearchPane.setFilterOptionFromAccordion('loan', 'Checked out');
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
import {
ACCEPTED_DATA_TYPE_NAMES,
BATCH_GROUP,
FOLIO_RECORD_TYPE,
JOB_STATUS_NAMES,
PAYMENT_METHOD,
INVOICE_STATUSES,
} from '../../../support/constants';
import { Permissions } from '../../../support/dictionary';
import InvoiceLineDetails from '../../../support/fragments/invoices/invoiceLineDetails';
import ActionProfiles from '../../../support/fragments/data_import/action_profiles/actionProfiles';
import DataImport from '../../../support/fragments/data_import/dataImport';
import JobProfiles from '../../../support/fragments/data_import/job_profiles/jobProfiles';
import NewJobProfile from '../../../support/fragments/data_import/job_profiles/newJobProfile';
import FileDetails from '../../../support/fragments/data_import/logs/fileDetails';
import Logs from '../../../support/fragments/data_import/logs/logs';
import FieldMappingProfileView from '../../../support/fragments/data_import/mapping_profiles/fieldMappingProfileView';
import FieldMappingProfiles from '../../../support/fragments/data_import/mapping_profiles/fieldMappingProfiles';
import NewFieldMappingProfile from '../../../support/fragments/data_import/mapping_profiles/newFieldMappingProfile';
import SettingsMenu from '../../../support/fragments/settingsMenu';
import TopMenu from '../../../support/fragments/topMenu';
import Users from '../../../support/fragments/users/users';
import getRandomPostfix from '../../../support/utils/stringTools';
import Organizations from '../../../support/fragments/organizations/organizations';

describe('data-import', () => {
describe('Importing EDIFACT files', () => {
const testData = {
profileForDuplicate: FieldMappingProfiles.mappingProfileForDuplicate.hein,
filePathForUpload: 'ediFileForC350716.txt',
fileName: `C350715 autotestFile${getRandomPostfix()}.txt`,
};
const organization = {
name: `WS Hein ${getRandomPostfix()}`,
code: `Hein ${getRandomPostfix()}`,
status: 'Active',
isVendor: true,
};
const mappingProfile = {
name: `C350716 Import Hein Serials Invoice ${getRandomPostfix()}`,
incomingRecordType: NewFieldMappingProfile.incomingRecordType.edifact,
typeValue: FOLIO_RECORD_TYPE.INVOICE,
description: '',
batchGroup: BATCH_GROUP.FOLIO,
organizationName: organization.name,
paymentMethod: PAYMENT_METHOD.CASH,
currency: 'USD',
};
const actionProfile = {
name: `C350716 Import Hein subscription invoice ${getRandomPostfix()}`,
typeValue: FOLIO_RECORD_TYPE.INVOICE,
};
const jobProfile = {
...NewJobProfile.defaultJobProfile,
profileName: `C350716 Import Hein Subscription Invoice ${getRandomPostfix()}`,
acceptedType: ACCEPTED_DATA_TYPE_NAMES.EDIFACT,
};

before('login', () => {
cy.createTempUser([
Permissions.moduleDataImportEnabled.gui,
Permissions.settingsDataImportEnabled.gui,
Permissions.uiOrganizationsViewEditCreate.gui,
Permissions.uiInvoicesCanViewInvoicesAndInvoiceLines.gui,
]).then((userProperties) => {
testData.user = userProperties;
cy.login(testData.user.username, testData.user.password, {
path: SettingsMenu.mappingProfilePath,
waiter: FieldMappingProfiles.waitLoading,
});
});
});

after('delete test data', () => {
cy.getAdminToken().then(() => {
Users.deleteViaApi(testData.user.userId);
JobProfiles.deleteJobProfile(jobProfile.profileName);
ActionProfiles.deleteActionProfile(actionProfile.name);
FieldMappingProfileView.deleteViaApi(mappingProfile.name);
});
});

it(
'C350716 Ensure an EDIFACT file with file extension .txt imports without errors (folijet)',
{ tags: ['extendedPath', 'folijet'] },
() => {
Organizations.createOrganizationViaApi(organization).then((response) => {
testData.organization = response;
});

// create Field mapping profile
FieldMappingProfiles.waitLoading();
FieldMappingProfiles.createInvoiceMappingProfile(
mappingProfile,
testData.profileForDuplicate,
);
FieldMappingProfiles.checkMappingProfilePresented(mappingProfile.name);

// create Action profile and link it to Field mapping profile
cy.visit(SettingsMenu.actionProfilePath);
ActionProfiles.create(actionProfile, mappingProfile.name);
ActionProfiles.checkActionProfilePresented(actionProfile.name);

// create Job profile
cy.visit(SettingsMenu.jobProfilePath);
JobProfiles.createJobProfile(jobProfile);
NewJobProfile.linkActionProfile(actionProfile);
NewJobProfile.saveAndClose();
JobProfiles.checkJobProfilePresented(jobProfile.profileName);

// upload a marc file
cy.visit(TopMenu.dataImportPath);
// TODO delete function after fix https://issues.folio.org/browse/MODDATAIMP-691
DataImport.verifyUploadState();
DataImport.uploadFile(testData.filePathForUpload, testData.fileName);
JobProfiles.waitFileIsUploaded();
JobProfiles.search(jobProfile.profileName);
JobProfiles.selectJobProfile();
JobProfiles.runImportFile();
JobProfiles.waitFileIsImported(testData.fileName);
Logs.checkImportFile(jobProfile.profileName);
Logs.checkStatusOfJobProfile(JOB_STATUS_NAMES.COMPLETED);
Logs.openFileDetails(testData.fileName);
FileDetails.verifyEachInvoiceStatusInColunm('Created');
FileDetails.openInvoiceLine('Created');

InvoiceLineDetails.checkInvoiceLineDetails({
invoiceLineInformation: [
{ key: 'Description', value: 'COLLECTED COURSES OF ACADEMY OF EUROPEAN LAW' },
{ key: 'Invoice line number', value: '1' },
{ key: 'Status', value: INVOICE_STATUSES.OPEN },
{ key: 'Quantity', value: '1' },
{ key: 'Sub-total', value: '$95.00' },
],
});
},
);
});
});
Loading

0 comments on commit fe748e3

Please sign in to comment.