diff --git a/src/api/StockMovementService.ts b/src/api/StockMovementService.ts index 3df67eb..b37453e 100644 --- a/src/api/StockMovementService.ts +++ b/src/api/StockMovementService.ts @@ -78,6 +78,39 @@ class StockMovementService extends BaseServiceModel { } } + async rollbackLastShipmentStatus(id: string) { + // request.delete does not throw on HTTP error statuses, and a swallowed + // failed rollback makes the follow-up delete fail with a status error + const apiResponse = await this.request.delete(STOCK_MOVEMENT_STATUS(id)); + if (!apiResponse.ok()) { + throw new Error( + `Problem rolling back shipment status of stock movement ${id}: ${apiResponse.status()}` + ); + } + } + + /* + Rolls back shipment events (received, shipped) one by one until the + shipment reaches the given status, e.g. back to PENDING so the stock + movement can be deleted regardless of the status it reached in the test. + */ + async rollbackShipmentToStatus(id: string, status: string) { + // a shipment accumulates one shipped event plus one receipt event per + // (partial) receipt, so a sane shipment needs just a few rollbacks + const maxRollbacks = 10; + for (let i = 0; i < maxRollbacks; i++) { + const { data } = await this.getStockMovement(id); + const shipmentStatus = data?.associations?.shipment?.status; + if (!shipmentStatus || shipmentStatus === status) { + return; + } + await this.rollbackLastShipmentStatus(id); + } + throw new Error( + `Shipment of stock movement ${id} did not get back to ${status} after ${maxRollbacks} rollbacks` + ); + } + async getStockMovement( id: string ): Promise> { diff --git a/src/tests/putaway/addCommentToPutaway.test.ts b/src/tests/putaway/addCommentToPutaway.test.ts index a1270b8..153c5a8 100644 --- a/src/tests/putaway/addCommentToPutaway.test.ts +++ b/src/tests/putaway/addCommentToPutaway.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -57,13 +57,7 @@ test.describe('Add comment to Putaway', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); await transactionListPage.table.row(1).actionsButton.click(); @@ -73,12 +67,7 @@ test.describe('Add comment to Putaway', () => { await transactionListPage.table.deleteButton.click(); await expect(transactionListPage.successMessage).toBeVisible(); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/assertAttemptToEditCompletedPutaway.test.ts b/src/tests/putaway/assertAttemptToEditCompletedPutaway.test.ts index 1ca9b65..1a83718 100644 --- a/src/tests/putaway/assertAttemptToEditCompletedPutaway.test.ts +++ b/src/tests/putaway/assertAttemptToEditCompletedPutaway.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -57,13 +57,7 @@ test.describe('Assert attempt to edit completed putaway', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); await transactionListPage.table.row(1).actionsButton.click(); @@ -73,12 +67,7 @@ test.describe('Assert attempt to edit completed putaway', () => { await transactionListPage.table.deleteButton.click(); await expect(transactionListPage.successMessage).toBeVisible(); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/assertPutawayDetailsPage.test.ts b/src/tests/putaway/assertPutawayDetailsPage.test.ts index 839776f..3ca4a3f 100644 --- a/src/tests/putaway/assertPutawayDetailsPage.test.ts +++ b/src/tests/putaway/assertPutawayDetailsPage.test.ts @@ -10,7 +10,7 @@ import { deleteFile, writeBufferToFile } from '@/utils/FileIOUtils'; import { pdfContainsValues } from '@/utils/pdfUtils'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -65,13 +65,7 @@ test.describe('Assert putaway details page', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); await transactionListPage.table.row(1).actionsButton.click(); @@ -81,12 +75,7 @@ test.describe('Assert putaway details page', () => { await transactionListPage.table.deleteButton.click(); await expect(transactionListPage.successMessage).toBeVisible(); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); while (downloadedFilePaths.length) { deleteFile(downloadedFilePaths.pop() as string); diff --git a/src/tests/putaway/assertReceivingBinsOnCreatePutawayPage.test.ts b/src/tests/putaway/assertReceivingBinsOnCreatePutawayPage.test.ts index 2291011..5e17f64 100644 --- a/src/tests/putaway/assertReceivingBinsOnCreatePutawayPage.test.ts +++ b/src/tests/putaway/assertReceivingBinsOnCreatePutawayPage.test.ts @@ -6,7 +6,7 @@ import { StockMovementResponse } from '@/types'; import { formatDate, getDateByOffset } from '@/utils/DateUtils'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -123,29 +123,19 @@ test.describe('Assert receiving bin on create putaway page', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); for (let n = 1; n < 4; n++) { await transactionListPage.deleteTransaction(1); } - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, + await deleteShipment({ stockMovementService, STOCK_MOVEMENT: PRIMARY_STOCK_MOVEMENT, }); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, + await deleteShipment({ stockMovementService, STOCK_MOVEMENT: SECONDARY_STOCK_MOVEMENT, }); diff --git a/src/tests/putaway/assertZonesInPutaways.test.ts b/src/tests/putaway/assertZonesInPutaways.test.ts index 1e9a49b..00bd78f 100644 --- a/src/tests/putaway/assertZonesInPutaways.test.ts +++ b/src/tests/putaway/assertZonesInPutaways.test.ts @@ -6,7 +6,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { ProductResponse, StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -141,11 +141,9 @@ test.describe('Assert zones on putaway pages', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, navbar, transactionListPage, - oldViewShipmentPage, productService, productShowPage, productEditPage, @@ -160,12 +158,7 @@ test.describe('Assert zones on putaway pages', () => { for (let n = 1; n < 4; n++) { await transactionListPage.deleteTransaction(1); } - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const product = await productService.getProduct(Product.FOUR); await test.step('Delete inventory level', async () => { diff --git a/src/tests/putaway/changeLocationOnCreatePutawayPage.test.ts b/src/tests/putaway/changeLocationOnCreatePutawayPage.test.ts index 485deae..0f8dfcb 100644 --- a/src/tests/putaway/changeLocationOnCreatePutawayPage.test.ts +++ b/src/tests/putaway/changeLocationOnCreatePutawayPage.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -58,32 +58,20 @@ test.describe('Change location on putaway create page and list pages', () => { } ); - test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - putawayListPage, - oldViewShipmentPage, - }) => { - // the received shipment must be cleaned up even when the test fails - // before the putaway is created - if (putawayOrderIdentifier) { - await putawayListPage.goToPage(); - await putawayListPage.table - .rowByOrderNumber(`${putawayOrderIdentifier}`.toString().trim()) - .actionsButton.click(); - await putawayListPage.table.clickDeleteOrderButton(1); - await putawayListPage.emptyPutawayList.isVisible(); - } - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + test.afterEach(async ({ stockMovementService, putawayListPage }) => { + // the received shipment must be cleaned up even when the test fails + // before the putaway is created + if (putawayOrderIdentifier) { + await putawayListPage.goToPage(); + await putawayListPage.table + .rowByOrderNumber(`${putawayOrderIdentifier}`.toString().trim()) + .actionsButton.click(); + await putawayListPage.table.clickDeleteOrderButton(1); + await putawayListPage.emptyPutawayList.isVisible(); } - ); + + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); + }); test('Change location on putaway create page and list page', async ({ stockMovementShowPage, diff --git a/src/tests/putaway/createMoreThan1PutawayForTheSameItem.test.ts b/src/tests/putaway/createMoreThan1PutawayForTheSameItem.test.ts index 5c12687..31d3dca 100644 --- a/src/tests/putaway/createMoreThan1PutawayForTheSameItem.test.ts +++ b/src/tests/putaway/createMoreThan1PutawayForTheSameItem.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -57,13 +57,7 @@ test.describe('Create more than 1 putaway from the same item', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); await transactionListPage.table.row(1).actionsButton.click(); @@ -73,12 +67,7 @@ test.describe('Create more than 1 putaway from the same item', () => { await transactionListPage.table.deleteButton.click(); await expect(transactionListPage.successMessage).toBeVisible(); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/createPutaway.test.ts b/src/tests/putaway/createPutaway.test.ts index 97c1218..2534696 100644 --- a/src/tests/putaway/createPutaway.test.ts +++ b/src/tests/putaway/createPutaway.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -57,13 +57,7 @@ test.describe('Putaway received inbound shipment', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); await transactionListPage.table.row(1).actionsButton.click(); @@ -73,12 +67,7 @@ test.describe('Putaway received inbound shipment', () => { await transactionListPage.table.deleteButton.click(); await expect(transactionListPage.successMessage).toBeVisible(); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/deleteItemsFromPutaway.test.ts b/src/tests/putaway/deleteItemsFromPutaway.test.ts index 3fa7165..2976134 100644 --- a/src/tests/putaway/deleteItemsFromPutaway.test.ts +++ b/src/tests/putaway/deleteItemsFromPutaway.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { ProductResponse, StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -71,24 +71,13 @@ test.describe('Delete items from putaway', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); for (let n = 1; n < 3; n++) { await transactionListPage.deleteTransaction(1); } - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/deletePendingPutaway.test.ts b/src/tests/putaway/deletePendingPutaway.test.ts index 4004ac4..973b17c 100644 --- a/src/tests/putaway/deletePendingPutaway.test.ts +++ b/src/tests/putaway/deletePendingPutaway.test.ts @@ -10,7 +10,7 @@ import StockMovementShowPage from '@/pages/stockMovementShow/StockMovementShowPa import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -61,20 +61,9 @@ test.describe('Delete pending putaways', () => { } ); - test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - oldViewShipmentPage, - }) => { - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); - } - ); + test.afterEach(async ({ stockMovementService }) => { + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); + }); test('Delete pending putaway as superuser from list page', async ({ stockMovementShowPage, diff --git a/src/tests/putaway/performPutawayAsManagerUser.test.ts b/src/tests/putaway/performPutawayAsManagerUser.test.ts index ddf5901..e01e151 100644 --- a/src/tests/putaway/performPutawayAsManagerUser.test.ts +++ b/src/tests/putaway/performPutawayAsManagerUser.test.ts @@ -9,7 +9,7 @@ import StockMovementShowPage from '@/pages/stockMovementShow/StockMovementShowPa import { ProductResponse, StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -80,19 +80,13 @@ test.describe('Perform putaway as manager user', () => { stockMovementService, navbar, transactionListPage, - oldViewShipmentPage, }) => { await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); await navbar.configurationButton.click(); await navbar.transactions.click(); await transactionListPage.deleteTransaction(1); await transactionListPage.deleteTransaction(1); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/putawayImtemWithEmptyLot.test.ts b/src/tests/putaway/putawayImtemWithEmptyLot.test.ts index ad7cc90..6c713fe 100644 --- a/src/tests/putaway/putawayImtemWithEmptyLot.test.ts +++ b/src/tests/putaway/putawayImtemWithEmptyLot.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -57,24 +57,13 @@ test.describe('Putaway item with empty lot', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); for (let n = 1; n < 5; n++) { await transactionListPage.deleteTransaction(1); } - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); await RefreshCachesUtils.refreshCaches({ navbar, }); diff --git a/src/tests/putaway/putawayMoreThan1Item.test.ts b/src/tests/putaway/putawayMoreThan1Item.test.ts index e885246..ea5309d 100644 --- a/src/tests/putaway/putawayMoreThan1Item.test.ts +++ b/src/tests/putaway/putawayMoreThan1Item.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { ProductResponse, StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -71,24 +71,13 @@ test.describe('Create putaway for more than 1 item, separate putaways', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); for (let n = 1; n < 4; n++) { await transactionListPage.deleteTransaction(1); } - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/putawayToHoldBin.test.ts b/src/tests/putaway/putawayToHoldBin.test.ts index 993cde4..478f74d 100644 --- a/src/tests/putaway/putawayToHoldBin.test.ts +++ b/src/tests/putaway/putawayToHoldBin.test.ts @@ -6,7 +6,7 @@ import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -80,13 +80,11 @@ test.describe('Putaway item into hold bin', () => { async ({ navbar, transactionListPage, - stockMovementShowPage, stockMovementService, page, locationListPage, mainLocationService, createLocationPage, - oldViewShipmentPage, }) => { const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; @@ -99,12 +97,7 @@ test.describe('Putaway item into hold bin', () => { await transactionListPage.table.deleteButton.click(); await expect(transactionListPage.successMessage).toBeVisible(); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); await test.step('Deactivate created bin location', async () => { await BinLocationUtils.deactivateCreatedBin({ diff --git a/src/tests/putaway/putawayToPreferredBin.test.ts b/src/tests/putaway/putawayToPreferredBin.test.ts index 557c8bb..cedc477 100644 --- a/src/tests/putaway/putawayToPreferredBin.test.ts +++ b/src/tests/putaway/putawayToPreferredBin.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { ProductResponse, StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -87,11 +87,9 @@ test.describe('Putaway to preferred bin and default bin', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, navbar, transactionListPage, - oldViewShipmentPage, productService, productShowPage, productEditPage, @@ -100,12 +98,7 @@ test.describe('Putaway to preferred bin and default bin', () => { await navbar.transactions.click(); await transactionListPage.deleteTransaction(1); await transactionListPage.deleteTransaction(1); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const product2 = await productService.getProduct(Product.FOUR); await productShowPage.goToPage(product2.id); await productShowPage.editProductButton.click(); diff --git a/src/tests/putaway/qtyValidationsInPutaways.test.ts b/src/tests/putaway/qtyValidationsInPutaways.test.ts index f1230dc..0c53f6f 100644 --- a/src/tests/putaway/qtyValidationsInPutaways.test.ts +++ b/src/tests/putaway/qtyValidationsInPutaways.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -58,32 +58,20 @@ test.describe('Assert qty validations in putaways', () => { } ); - test.afterEach( - async ({ - putawayListPage, - stockMovementShowPage, - stockMovementService, - oldViewShipmentPage, - }) => { - // the received shipment must be cleaned up even when the test fails - // before the putaway is started - if (putawayOrderIdentifier) { - await putawayListPage.goToPage(); - await putawayListPage.table - .rowByOrderNumber(`${putawayOrderIdentifier}`.toString().trim()) - .actionsButton.click(); - await putawayListPage.table.clickDeleteOrderButton(1); - await putawayListPage.emptyPutawayList.isVisible(); - } - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + test.afterEach(async ({ putawayListPage, stockMovementService }) => { + // the received shipment must be cleaned up even when the test fails + // before the putaway is started + if (putawayOrderIdentifier) { + await putawayListPage.goToPage(); + await putawayListPage.table + .rowByOrderNumber(`${putawayOrderIdentifier}`.toString().trim()) + .actionsButton.click(); + await putawayListPage.table.clickDeleteOrderButton(1); + await putawayListPage.emptyPutawayList.isVisible(); } - ); + + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); + }); test('Assert qty validations in putaways', async ({ stockMovementShowPage, diff --git a/src/tests/putaway/rollbackLastReceiptWhenPutawayCreated.test.ts b/src/tests/putaway/rollbackLastReceiptWhenPutawayCreated.test.ts index c117515..da9fa20 100644 --- a/src/tests/putaway/rollbackLastReceiptWhenPutawayCreated.test.ts +++ b/src/tests/putaway/rollbackLastReceiptWhenPutawayCreated.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -57,13 +57,7 @@ test.describe('Rollback last receipt behavior when putaway created', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); await transactionListPage.table.row(1).actionsButton.click(); @@ -72,12 +66,7 @@ test.describe('Rollback last receipt behavior when putaway created', () => { await transactionListPage.table.row(1).actionsButton.click(); await transactionListPage.table.deleteButton.click(); await expect(transactionListPage.successMessage).toBeVisible(); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/sortPutawayByCurrentPreferredAndOriginalOrder.test.ts b/src/tests/putaway/sortPutawayByCurrentPreferredAndOriginalOrder.test.ts index 398e903..6ab5bbb 100644 --- a/src/tests/putaway/sortPutawayByCurrentPreferredAndOriginalOrder.test.ts +++ b/src/tests/putaway/sortPutawayByCurrentPreferredAndOriginalOrder.test.ts @@ -7,7 +7,7 @@ import { } from '@/types'; import { assignPreferredBin } from '@/utils/productUtils'; import RefreshCachesUtils from '@/utils/RefreshCaches'; -import { deleteReceivedShipment, receiveInbound } from '@/utils/shipmentUtils'; +import { deleteShipment, receiveInbound } from '@/utils/shipmentUtils'; import { byNameAsc } from '@/utils/sortUtils'; /** @@ -88,9 +88,7 @@ test.describe('Sort putaway by current bin, preferred bin and original order', ( test.afterEach( async ({ - stockMovementShowPage, stockMovementService, - oldViewShipmentPage, navbar, transactionListPage, putawayListPage, @@ -117,16 +115,12 @@ test.describe('Sort putaway by current bin, preferred bin and original order', ( } if (inboundTwo) { - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, + await deleteShipment({ stockMovementService, STOCK_MOVEMENT: inboundTwo, }); } - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, + await deleteShipment({ stockMovementService, STOCK_MOVEMENT: inboundOne, }); diff --git a/src/tests/putaway/splitLineInPutaway.test.ts b/src/tests/putaway/splitLineInPutaway.test.ts index 2cd5b49..7604ec5 100644 --- a/src/tests/putaway/splitLineInPutaway.test.ts +++ b/src/tests/putaway/splitLineInPutaway.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -57,13 +57,7 @@ test.describe('Split line in Putaway', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); await transactionListPage.table.row(1).actionsButton.click(); @@ -76,12 +70,7 @@ test.describe('Split line in Putaway', () => { await transactionListPage.table.deleteButton.click(); await expect(transactionListPage.successMessage).toBeVisible(); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/putaway/validationOnQtyRemovedFromReceivingBin.test.ts b/src/tests/putaway/validationOnQtyRemovedFromReceivingBin.test.ts index daa263c..1f42307 100644 --- a/src/tests/putaway/validationOnQtyRemovedFromReceivingBin.test.ts +++ b/src/tests/putaway/validationOnQtyRemovedFromReceivingBin.test.ts @@ -8,7 +8,7 @@ import ProductShowPage from '@/pages/product/productShow/ProductShowPage'; import { ProductResponse, StockMovementResponse } from '@/types'; import RefreshCachesUtils from '@/utils/RefreshCaches'; import { - deleteReceivedShipment, + deleteShipment, getShipmentId, getShipmentItemId, } from '@/utils/shipmentUtils'; @@ -74,24 +74,13 @@ test.describe('Assert validation on qty removed from receiving bin', () => { ); test.afterEach( - async ({ - stockMovementShowPage, - stockMovementService, - navbar, - transactionListPage, - oldViewShipmentPage, - }) => { + async ({ stockMovementService, navbar, transactionListPage }) => { await navbar.configurationButton.click(); await navbar.transactions.click(); for (let n = 1; n < 6; n++) { await transactionListPage.deleteTransaction(1); } - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); } ); diff --git a/src/tests/receiving/assertBinLocationField.test.ts b/src/tests/receiving/assertBinLocationField.test.ts index 8d536bb..532ad62 100644 --- a/src/tests/receiving/assertBinLocationField.test.ts +++ b/src/tests/receiving/assertBinLocationField.test.ts @@ -4,7 +4,7 @@ import { expect, test } from '@/fixtures/fixtures'; import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Assert bin location not clearable', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -40,22 +40,13 @@ test.describe('Assert bin location not clearable', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; await BinLocationUtils.deactivateReceivingBin({ diff --git a/src/tests/receiving/assertCreationOfGoodsReceiptNote.test.ts b/src/tests/receiving/assertCreationOfGoodsReceiptNote.test.ts index ef63956..8df7018 100644 --- a/src/tests/receiving/assertCreationOfGoodsReceiptNote.test.ts +++ b/src/tests/receiving/assertCreationOfGoodsReceiptNote.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { pageContainsValues } from '@/utils/pageUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; import { captureRowValues } from '@/utils/tableUtils'; test.describe('Assert Goods Receipt Note is created and opened', () => { @@ -41,22 +41,13 @@ test.describe('Assert Goods Receipt Note is created and opened', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; await BinLocationUtils.deactivateReceivingBin({ diff --git a/src/tests/receiving/assertCreationOfReceivingBin.test.ts b/src/tests/receiving/assertCreationOfReceivingBin.test.ts index f96cc49..f24c006 100644 --- a/src/tests/receiving/assertCreationOfReceivingBin.test.ts +++ b/src/tests/receiving/assertCreationOfReceivingBin.test.ts @@ -7,7 +7,7 @@ import CreateLocationPage from '@/pages/location/createLocation/CreateLocationPa import LocationListPage from '@/pages/location/LocationListPage'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Assert creation of receiving bin', () => { test.describe.configure({ timeout: 60000 }); @@ -47,22 +47,13 @@ test.describe('Assert creation of receiving bin', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; diff --git a/src/tests/receiving/assertQtyInputs.test.ts b/src/tests/receiving/assertQtyInputs.test.ts index 3c092e2..612c320 100644 --- a/src/tests/receiving/assertQtyInputs.test.ts +++ b/src/tests/receiving/assertQtyInputs.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { formatDate, getDateByOffset } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Assert if quantity inputs remain when split lines', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -45,22 +45,13 @@ test.describe('Assert if quantity inputs remain when split lines', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; diff --git a/src/tests/receiving/assertRecipientField.test.ts b/src/tests/receiving/assertRecipientField.test.ts index 3379603..270e0ac 100644 --- a/src/tests/receiving/assertRecipientField.test.ts +++ b/src/tests/receiving/assertRecipientField.test.ts @@ -4,7 +4,7 @@ import { expect, test } from '@/fixtures/fixtures'; import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Assert recipient field when receive', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -48,22 +48,13 @@ test.describe('Assert recipient field when receive', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; diff --git a/src/tests/receiving/cancelRemainingQty.test.ts b/src/tests/receiving/cancelRemainingQty.test.ts index dc4581e..913c87c 100644 --- a/src/tests/receiving/cancelRemainingQty.test.ts +++ b/src/tests/receiving/cancelRemainingQty.test.ts @@ -4,7 +4,7 @@ import { expect, test } from '@/fixtures/fixtures'; import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Cancel qty in the middle of receipt', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -42,22 +42,13 @@ test.describe('Cancel qty in the middle of receipt', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; await BinLocationUtils.deactivateReceivingBin({ diff --git a/src/tests/receiving/editBinLocationWhenReceive.test.ts b/src/tests/receiving/editBinLocationWhenReceive.test.ts index 9d4bc57..ab2ad96 100644 --- a/src/tests/receiving/editBinLocationWhenReceive.test.ts +++ b/src/tests/receiving/editBinLocationWhenReceive.test.ts @@ -5,7 +5,7 @@ import { expect, test } from '@/fixtures/fixtures'; import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; import UniqueIdentifier from '@/utils/UniqueIdentifier'; test.describe('Edit Bin Location when receive inbound stock movement', () => { @@ -69,25 +69,16 @@ test.describe('Edit Bin Location when receive inbound stock movement', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, page, locationListPage, mainLocationService, createLocationPage, - oldViewShipmentPage, }) => { const mainLocation = await mainLocationService.getLocation(); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); await test.step('Deactivate created bin location', async () => { await page.goto(LOCATION_URL.list()); @@ -266,25 +257,16 @@ test.describe('Edit Bin Location to bin with zone when receive inbound stock mov test.afterEach( async ({ - stockMovementShowPage, stockMovementService, page, locationListPage, mainLocationService, createLocationPage, - oldViewShipmentPage, }) => { const mainLocation = await mainLocationService.getLocation(); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); await test.step('Deactivate created bin location', async () => { await page.goto(LOCATION_URL.list()); @@ -465,25 +447,16 @@ test.describe('Edit Bin Location when receive for all lines', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, page, locationListPage, mainLocationService, createLocationPage, - oldViewShipmentPage, }) => { const mainLocation = await mainLocationService.getLocation(); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); await test.step('Deactivate created bin location', async () => { await page.goto(LOCATION_URL.list()); diff --git a/src/tests/receiving/editOriginalLineQtyTo0.test.ts b/src/tests/receiving/editOriginalLineQtyTo0.test.ts index 9cb02b6..7f78e7c 100644 --- a/src/tests/receiving/editOriginalLineQtyTo0.test.ts +++ b/src/tests/receiving/editOriginalLineQtyTo0.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { getDateByOffset } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; import UniqueIdentifier from '@/utils/UniqueIdentifier'; test.describe('Edit qty of original line to 0', () => { @@ -58,22 +58,13 @@ test.describe('Edit qty of original line to 0', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; @@ -253,22 +244,13 @@ test.describe('Edit original line to other product in the middle of receipt', () test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; await BinLocationUtils.deactivateReceivingBin({ diff --git a/src/tests/receiving/editsInReceiving.test.ts b/src/tests/receiving/editsInReceiving.test.ts index 7b78947..4995352 100644 --- a/src/tests/receiving/editsInReceiving.test.ts +++ b/src/tests/receiving/editsInReceiving.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { formatDate, getDateByOffset, getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; import UniqueIdentifier from '@/utils/UniqueIdentifier'; test.describe('Edit items in the middle of receipt', () => { @@ -51,22 +51,13 @@ test.describe('Edit items in the middle of receipt', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; diff --git a/src/tests/receiving/exportReceivingTemplate.test.ts b/src/tests/receiving/exportReceivingTemplate.test.ts index adea116..a28c338 100644 --- a/src/tests/receiving/exportReceivingTemplate.test.ts +++ b/src/tests/receiving/exportReceivingTemplate.test.ts @@ -7,7 +7,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { formatDate, getDateByOffset } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; import UniqueIdentifier from '@/utils/UniqueIdentifier'; import { WorkbookUtils } from '@/utils/WorkbookUtils'; @@ -54,22 +54,13 @@ test.describe('Export receiving template', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); for (const workbook of workbooks) { workbook.delete(); diff --git a/src/tests/receiving/importReceivingTemplate.test.ts b/src/tests/receiving/importReceivingTemplate.test.ts index 328f12f..c052c77 100644 --- a/src/tests/receiving/importReceivingTemplate.test.ts +++ b/src/tests/receiving/importReceivingTemplate.test.ts @@ -7,7 +7,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { getDateByOffset } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; import UniqueIdentifier from '@/utils/UniqueIdentifier'; import { WorkbookUtils } from '@/utils/WorkbookUtils'; @@ -53,22 +53,13 @@ test.describe('Import receiving template', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); for (const workbook of workbooks) { workbook.delete(); diff --git a/src/tests/receiving/lotExpirySystemUpdateOnReceiving.test.ts b/src/tests/receiving/lotExpirySystemUpdateOnReceiving.test.ts index 761901c..46eed24 100644 --- a/src/tests/receiving/lotExpirySystemUpdateOnReceiving.test.ts +++ b/src/tests/receiving/lotExpirySystemUpdateOnReceiving.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { formatDate, getDateByOffset, getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; import UniqueIdentifier from '@/utils/UniqueIdentifier'; test.describe('Lot number system expiry date modification on receiving workflow', () => { @@ -19,7 +19,6 @@ test.describe('Lot number system expiry date modification on receiving workflow' page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { // TODO: Improve this one, it is prone to getting stuck if there are not deleted SMs in the tested location while (STOCK_MOVEMENTS.length > 0) { @@ -32,12 +31,7 @@ test.describe('Lot number system expiry date modification on receiving workflow' }); await test.step(`Delete stock movement "${STOCK_MOVEMENT.id}"`, async () => { - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); }); const receivingBin = diff --git a/src/tests/receiving/receiveInbound.test.ts b/src/tests/receiving/receiveInbound.test.ts index 34b1f29..ac79559 100644 --- a/src/tests/receiving/receiveInbound.test.ts +++ b/src/tests/receiving/receiveInbound.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { formatDate, getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Receive inbound stock movement', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -45,22 +45,13 @@ test.describe('Receive inbound stock movement', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; @@ -414,23 +405,10 @@ test.describe('Receive from different locations', () => { } ); - test.afterEach( - async ({ - authService, - stockMovementShowPage, - stockMovementService, - oldViewShipmentPage, - }) => { - await authService.changeLocation(AppConfig.instance.locations.main.id); - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); - } - ); + test.afterEach(async ({ authService, stockMovementService }) => { + await authService.changeLocation(AppConfig.instance.locations.main.id); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); + }); test('Receiving should not be available from other location than which is specfied as destination location', async ({ stockMovementShowPage, diff --git a/src/tests/receiving/receiveInboundWithoutPartialReceiving.test.ts b/src/tests/receiving/receiveInboundWithoutPartialReceiving.test.ts index 96bb5a0..0416227 100644 --- a/src/tests/receiving/receiveInboundWithoutPartialReceiving.test.ts +++ b/src/tests/receiving/receiveInboundWithoutPartialReceiving.test.ts @@ -4,7 +4,7 @@ import { expect, test } from '@/fixtures/fixtures'; import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import { formatDate, getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Receive inbound stock movement in location without partial receiving', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -44,29 +44,16 @@ test.describe('Receive inbound stock movement in location without partial receiv } ); - test.afterEach( - async ({ - stockMovementShowPage, - authService, - oldViewShipmentPage, - stockMovementService, - }) => { - // the shipment must be deleted while the session is still at the depot, - // but the location has to be restored even when the cleanup fails, - // otherwise the next test file runs against the wrong location - try { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); - } finally { - await authService.changeLocation(AppConfig.instance.locations.main.id); - } + test.afterEach(async ({ authService, stockMovementService }) => { + // the shipment must be deleted while the session is still at the depot, + // but the location has to be restored even when the cleanup fails, + // otherwise the next test file runs against the wrong location + try { + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); + } finally { + await authService.changeLocation(AppConfig.instance.locations.main.id); } - ); + }); test('Assert Confirm receiving dialog and select No, receive 1 item fully', async ({ stockMovementShowPage, diff --git a/src/tests/receiving/receiveInboundWithoutPickAndPutawayStock.test.ts b/src/tests/receiving/receiveInboundWithoutPickAndPutawayStock.test.ts index 871c10b..85de626 100644 --- a/src/tests/receiving/receiveInboundWithoutPickAndPutawayStock.test.ts +++ b/src/tests/receiving/receiveInboundWithoutPickAndPutawayStock.test.ts @@ -4,7 +4,7 @@ import { expect, test } from '@/fixtures/fixtures'; import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import { getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Receive inbound stock movement in location without pick and putaway stock', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -41,29 +41,16 @@ test.describe('Receive inbound stock movement in location without pick and putaw } ); - test.afterEach( - async ({ - stockMovementShowPage, - authService, - oldViewShipmentPage, - stockMovementService, - }) => { - // the shipment must be deleted while the session is still at the depot, - // but the location has to be restored even when the cleanup fails, - // otherwise the next test file runs against the wrong location - try { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); - } finally { - await authService.changeLocation(AppConfig.instance.locations.main.id); - } + test.afterEach(async ({ authService, stockMovementService }) => { + // the shipment must be deleted while the session is still at the depot, + // but the location has to be restored even when the cleanup fails, + // otherwise the next test file runs against the wrong location + try { + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); + } finally { + await authService.changeLocation(AppConfig.instance.locations.main.id); } - ); + }); test('Receive sm in location without pick and putaway stock', async ({ stockMovementShowPage, diff --git a/src/tests/receiving/receiveToHoldBin.test.ts b/src/tests/receiving/receiveToHoldBin.test.ts index bbff5d4..93a015d 100644 --- a/src/tests/receiving/receiveToHoldBin.test.ts +++ b/src/tests/receiving/receiveToHoldBin.test.ts @@ -4,7 +4,7 @@ import { expect, test } from '@/fixtures/fixtures'; import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; import UniqueIdentifier from '@/utils/UniqueIdentifier'; test.describe('Receive item into hold bin', () => { @@ -54,23 +54,15 @@ test.describe('Receive item into hold bin', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, page, locationListPage, mainLocationService, createLocationPage, - oldViewShipmentPage, }) => { const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); await test.step('Deactivate created bin location', async () => { await BinLocationUtils.deactivateCreatedBin({ diff --git a/src/tests/receiving/receivingStatusChanges.test.ts b/src/tests/receiving/receivingStatusChanges.test.ts index 78ff309..5d4d8f2 100644 --- a/src/tests/receiving/receivingStatusChanges.test.ts +++ b/src/tests/receiving/receivingStatusChanges.test.ts @@ -7,7 +7,7 @@ import StockMovementShowPage from '@/pages/stockMovementShow/StockMovementShowPa import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Status changes on sm view page when receive shipment', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -46,21 +46,13 @@ test.describe('Status changes on sm view page when receive shipment', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; await BinLocationUtils.deactivateReceivingBin({ diff --git a/src/tests/receiving/receivingStatusChangesWithoutPartialReceiving.test.ts b/src/tests/receiving/receivingStatusChangesWithoutPartialReceiving.test.ts index 9dfea48..239690c 100644 --- a/src/tests/receiving/receivingStatusChangesWithoutPartialReceiving.test.ts +++ b/src/tests/receiving/receivingStatusChangesWithoutPartialReceiving.test.ts @@ -6,7 +6,7 @@ import InboundListPage from '@/pages/inbound/list/InboundListPage'; import StockMovementShowPage from '@/pages/stockMovementShow/StockMovementShowPage'; import { StockMovementResponse } from '@/types'; import { getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Status changes on sm view page when receive shipment in location without partial receiving', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -46,24 +46,11 @@ test.describe('Status changes on sm view page when receive shipment in location } ); - test.afterEach( - async ({ - stockMovementShowPage, - authService, - oldViewShipmentPage, - stockMovementService, - }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + test.afterEach(async ({ authService, stockMovementService }) => { + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); - await authService.changeLocation(AppConfig.instance.locations.main.id); - } - ); + await authService.changeLocation(AppConfig.instance.locations.main.id); + }); test('Assert status changes on view page and receipt tab when receive 1 item partially', async ({ stockMovementShowPage, diff --git a/src/tests/receiving/rollbackStatusChanges.test.ts b/src/tests/receiving/rollbackStatusChanges.test.ts index 262d159..29ead23 100644 --- a/src/tests/receiving/rollbackStatusChanges.test.ts +++ b/src/tests/receiving/rollbackStatusChanges.test.ts @@ -7,7 +7,7 @@ import StockMovementShowPage from '@/pages/stockMovementShow/StockMovementShowPa import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Status changes on sm view page when rollback receipts', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -46,21 +46,13 @@ test.describe('Status changes on sm view page when rollback receipts', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; diff --git a/src/tests/receiving/sortByAlphabeticalOrderAndRemainInputs.test.ts b/src/tests/receiving/sortByAlphabeticalOrderAndRemainInputs.test.ts index d6f3005..6931e3d 100644 --- a/src/tests/receiving/sortByAlphabeticalOrderAndRemainInputs.test.ts +++ b/src/tests/receiving/sortByAlphabeticalOrderAndRemainInputs.test.ts @@ -4,7 +4,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { getDateByOffset, getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Apply sorting by alphabetical order and remain inputs', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -38,21 +38,13 @@ test.describe('Apply sorting by alphabetical order and remain inputs', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; diff --git a/src/tests/receiving/tableShortcutsInReceiving.test.ts b/src/tests/receiving/tableShortcutsInReceiving.test.ts index 40faaf6..b767599 100644 --- a/src/tests/receiving/tableShortcutsInReceiving.test.ts +++ b/src/tests/receiving/tableShortcutsInReceiving.test.ts @@ -4,7 +4,7 @@ import { expect, test } from '@/fixtures/fixtures'; import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Use table shortcuts on receiving page', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -59,21 +59,13 @@ test.describe('Use table shortcuts on receiving page', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; diff --git a/src/tests/receiving/validationsOnDeliverOnDate.test.ts b/src/tests/receiving/validationsOnDeliverOnDate.test.ts index d40e911..b842419 100644 --- a/src/tests/receiving/validationsOnDeliverOnDate.test.ts +++ b/src/tests/receiving/validationsOnDeliverOnDate.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { formatDate, getDateByOffset } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Validations on edit Deliver On Date when receiving shipment', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -36,21 +36,13 @@ test.describe('Validations on edit Deliver On Date when receiving shipment', () test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; await BinLocationUtils.deactivateReceivingBin({ diff --git a/src/tests/receiving/validationsOnEditAndReceive.test.ts b/src/tests/receiving/validationsOnEditAndReceive.test.ts index fa59354..cd724d0 100644 --- a/src/tests/receiving/validationsOnEditAndReceive.test.ts +++ b/src/tests/receiving/validationsOnEditAndReceive.test.ts @@ -5,7 +5,7 @@ import { Product } from '@/generated/ProductCodes.generated'; import { StockMovementResponse } from '@/types'; import BinLocationUtils from '@/utils/BinLocationUtils'; import { getToday } from '@/utils/DateUtils'; -import { deleteReceivedShipment } from '@/utils/shipmentUtils'; +import { deleteShipment } from '@/utils/shipmentUtils'; test.describe('Assert validation on try to receive not yet shipped inbound', () => { let STOCK_MOVEMENT: StockMovementResponse; @@ -38,9 +38,8 @@ test.describe('Assert validation on try to receive not yet shipped inbound', () } ); - test.afterEach(async ({ stockMovementShowPage, stockMovementService }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await stockMovementService.deleteStockMovement(STOCK_MOVEMENT.id); + test.afterEach(async ({ stockMovementService }) => { + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); }); test('Assert validation on try to receive not yet shipped inbound', async ({ @@ -99,21 +98,13 @@ test.describe('Validations on edit and receive inbound stock movement', () => { test.afterEach( async ({ - stockMovementShowPage, stockMovementService, mainLocationService, page, locationListPage, createLocationPage, - oldViewShipmentPage, }) => { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, - stockMovementService, - STOCK_MOVEMENT, - }); + await deleteShipment({ stockMovementService, STOCK_MOVEMENT }); const receivingBin = AppConfig.instance.receivingBinPrefix + STOCK_MOVEMENT.identifier; diff --git a/src/types.d.ts b/src/types.d.ts index 9265f48..14254e2 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -222,6 +222,7 @@ type StockMovementResponse = { associations: { shipment: { id: string; + status: string; }; }; }; diff --git a/src/utils/shipmentUtils.ts b/src/utils/shipmentUtils.ts index 2c3f14a..e341d92 100644 --- a/src/utils/shipmentUtils.ts +++ b/src/utils/shipmentUtils.ts @@ -5,8 +5,6 @@ import ReceivingService from '@/api/ReceivingService'; import StockMovementService from '@/api/StockMovementService'; import AppConfig from '@/config/AppConfig'; import { ShipmentType } from '@/constants/ShipmentType'; -import OldViewShipmentPage from '@/pages/stockMovementShow/OldViewShipmentPage'; -import StockMovementShowPage from '@/pages/stockMovementShow/StockMovementShowPage'; import { ReceiptResponse, StockMovementResponse } from '@/types'; export const getShipmentId = (stockMovement: StockMovementResponse) => { @@ -62,22 +60,21 @@ export async function receiveInbound( await receivingService.completeReceipt(shipmentId); } -export async function deleteReceivedShipment({ - stockMovementShowPage, - oldViewShipmentPage, +/** + Deletes a stock movement through the API regardless of the shipment status, + rolling back the received and shipped events first when needed. +*/ +export async function deleteShipment({ stockMovementService, STOCK_MOVEMENT, }: { STOCK_MOVEMENT: StockMovementResponse; stockMovementService: StockMovementService; - stockMovementShowPage: StockMovementShowPage; - oldViewShipmentPage: OldViewShipmentPage; }) { - await stockMovementShowPage.goToPage(STOCK_MOVEMENT.id); - await stockMovementShowPage.detailsListTable.oldViewShipmentPage.click(); - await oldViewShipmentPage.undoStatusChangeButton.click(); - await stockMovementShowPage.isLoaded(); - await stockMovementShowPage.rollbackButton.click(); + await stockMovementService.rollbackShipmentToStatus( + STOCK_MOVEMENT.id, + 'PENDING' + ); await stockMovementService.deleteStockMovement(STOCK_MOVEMENT.id); // The server clears receiving-bin stock asynchronously after the stock