|
| 1 | +import { BULK_EDIT_TABLE_COLUMN_HEADERS } from '../../../support/constants'; |
| 2 | +import permissions from '../../../support/dictionary/permissions'; |
| 3 | +import BulkEditActions from '../../../support/fragments/bulk-edit/bulk-edit-actions'; |
| 4 | +import BulkEditFiles from '../../../support/fragments/bulk-edit/bulk-edit-files'; |
| 5 | +import BulkEditSearchPane from '../../../support/fragments/bulk-edit/bulk-edit-search-pane'; |
| 6 | +import InventoryInstance from '../../../support/fragments/inventory/inventoryInstance'; |
| 7 | +import TopMenu from '../../../support/fragments/topMenu'; |
| 8 | +import Users from '../../../support/fragments/users/users'; |
| 9 | +import FileManager from '../../../support/utils/fileManager'; |
| 10 | +import getRandomPostfix from '../../../support/utils/stringTools'; |
| 11 | + |
| 12 | +let user; |
| 13 | +const arabicText = 'هذا اختبار'; |
| 14 | +const instanceUUIDsFileName = `instanceUUIDs_C651597_${getRandomPostfix()}.csv`; |
| 15 | +const instance = { |
| 16 | + title: `C651597_AT_${getRandomPostfix()} ${arabicText}`, |
| 17 | + indexTitle: `${arabicText}_${getRandomPostfix()}`, |
| 18 | +}; |
| 19 | +const matchedRecordsFileName = BulkEditFiles.getMatchedRecordsFileName(instanceUUIDsFileName); |
| 20 | +const previewFileName = BulkEditFiles.getPreviewFileName(instanceUUIDsFileName); |
| 21 | +const changedRecordsFileName = BulkEditFiles.getChangedRecordsFileName(instanceUUIDsFileName); |
| 22 | + |
| 23 | +const arabicColumns = [ |
| 24 | + { |
| 25 | + header: BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_INSTANCES.RESOURCE_TITLE, |
| 26 | + value: arabicText, |
| 27 | + }, |
| 28 | + { |
| 29 | + header: BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_INSTANCES.INDEX_TITLE, |
| 30 | + value: arabicText, |
| 31 | + }, |
| 32 | + { |
| 33 | + header: BULK_EDIT_TABLE_COLUMN_HEADERS.INVENTORY_INSTANCES.ADMINISTRATIVE_NOTE, |
| 34 | + value: arabicText, |
| 35 | + }, |
| 36 | +]; |
| 37 | + |
| 38 | +describe('Bulk-edit', () => { |
| 39 | + describe('In-app approach', () => { |
| 40 | + before('create test data', () => { |
| 41 | + cy.createTempUser([ |
| 42 | + permissions.bulkEditEdit.gui, |
| 43 | + permissions.uiInventoryViewCreateEditInstances.gui, |
| 44 | + ]).then((userProperties) => { |
| 45 | + user = userProperties; |
| 46 | + cy.getAdminToken(); |
| 47 | + cy.getInstanceTypes({ limit: 1 }) |
| 48 | + .then((instanceTypes) => { |
| 49 | + instance.instanceTypeId = instanceTypes[0].id; |
| 50 | + }) |
| 51 | + .then(() => { |
| 52 | + cy.createInstance({ |
| 53 | + instance: { |
| 54 | + instanceTypeId: instance.instanceTypeId, |
| 55 | + title: instance.title, |
| 56 | + indexTitle: instance.indexTitle, |
| 57 | + administrativeNotes: [arabicText], |
| 58 | + }, |
| 59 | + }).then((instanceId) => { |
| 60 | + instance.id = instanceId; |
| 61 | + FileManager.createFile(`cypress/fixtures/${instanceUUIDsFileName}`, instance.id); |
| 62 | + }); |
| 63 | + }); |
| 64 | + cy.login(user.username, user.password, { |
| 65 | + path: TopMenu.bulkEditPath, |
| 66 | + waiter: BulkEditSearchPane.waitLoading, |
| 67 | + }); |
| 68 | + }); |
| 69 | + }); |
| 70 | + |
| 71 | + after('delete test data', () => { |
| 72 | + cy.getAdminToken(); |
| 73 | + InventoryInstance.deleteInstanceViaApi(instance.id); |
| 74 | + Users.deleteViaApi(user.userId); |
| 75 | + FileManager.deleteFile(`cypress/fixtures/${instanceUUIDsFileName}`); |
| 76 | + FileManager.deleteFileFromDownloadsByMask( |
| 77 | + matchedRecordsFileName, |
| 78 | + previewFileName, |
| 79 | + changedRecordsFileName, |
| 80 | + ); |
| 81 | + }); |
| 82 | + |
| 83 | + it( |
| 84 | + 'C651597 Verify correct display of Arabic characters in Instance editable text fields in EXCEL .csv files downloaded from Bulk edit (firebird)', |
| 85 | + { tags: ['extendedPath', 'firebird', 'C651597'] }, |
| 86 | + () => { |
| 87 | + // Steps 1-3: Upload UUID file and verify matched results |
| 88 | + BulkEditSearchPane.verifyDragNDropRecordTypeIdentifierArea('Instance', 'Instance UUIDs'); |
| 89 | + BulkEditSearchPane.uploadFile(instanceUUIDsFileName); |
| 90 | + BulkEditSearchPane.checkForUploading(instanceUUIDsFileName); |
| 91 | + BulkEditSearchPane.waitFileUploading(); |
| 92 | + BulkEditSearchPane.verifySpecificItemsMatched(arabicText); |
| 93 | + |
| 94 | + // Steps 4-5: Download matched records CSV and verify Arabic text + UTF-8 BOM |
| 95 | + BulkEditActions.downloadMatchedResults(); |
| 96 | + BulkEditFiles.verifyBomAndArabicColumnsInCsvFile( |
| 97 | + matchedRecordsFileName, |
| 98 | + instance.id, |
| 99 | + arabicColumns, |
| 100 | + ); |
| 101 | + |
| 102 | + // Steps 6-7: Open FOLIO Instances form, set Staff suppress to true |
| 103 | + BulkEditActions.openStartBulkEditFolioInstanceForm(); |
| 104 | + BulkEditActions.selectOption('Staff suppress'); |
| 105 | + BulkEditActions.selectAction('Set true'); |
| 106 | + |
| 107 | + // Step 8: Confirm changes |
| 108 | + BulkEditActions.confirmChanges(); |
| 109 | + BulkEditActions.verifyMessageBannerInAreYouSureForm(1); |
| 110 | + |
| 111 | + // Steps 9-10: Download preview CSV and verify Arabic text + UTF-8 BOM |
| 112 | + BulkEditActions.downloadPreview(); |
| 113 | + BulkEditFiles.verifyBomAndArabicColumnsInCsvFile( |
| 114 | + previewFileName, |
| 115 | + instance.id, |
| 116 | + arabicColumns, |
| 117 | + ); |
| 118 | + |
| 119 | + // Step 11: Commit changes |
| 120 | + BulkEditActions.commitChanges(); |
| 121 | + BulkEditSearchPane.waitFileUploading(); |
| 122 | + BulkEditActions.verifySuccessBanner(1); |
| 123 | + |
| 124 | + // Steps 12-13: Download changed records CSV and verify Arabic text + UTF-8 BOM |
| 125 | + BulkEditActions.openActions(); |
| 126 | + BulkEditActions.downloadChangedCSV(); |
| 127 | + BulkEditFiles.verifyBomAndArabicColumnsInCsvFile( |
| 128 | + changedRecordsFileName, |
| 129 | + instance.id, |
| 130 | + arabicColumns, |
| 131 | + ); |
| 132 | + }, |
| 133 | + ); |
| 134 | + }); |
| 135 | +}); |
0 commit comments