Skip to content

Commit 528eeb5

Browse files
committed
Add tests for revertChanges
1 parent d8e351c commit 528eeb5

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/Split shipments/WooShippingSplitShipmentsViewModelTests.swift

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1100,6 +1100,8 @@ final class WooShippingSplitShipmentsViewModelTests: XCTestCase {
11001100
XCTAssertFalse(viewModel.isShipmentDeleteOptionAvailable(for: unfulfilledShipment))
11011101
}
11021102

1103+
// MARK: - `instructions`
1104+
11031105
func test_instructions_is_nil_when_there_exists_more_than_one_shipment() {
11041106
// Given
11051107
let items = [sampleItem(id: 1, weight: 5, value: 10, quantity: 2),
@@ -1149,6 +1151,43 @@ final class WooShippingSplitShipmentsViewModelTests: XCTestCase {
11491151
XCTAssertNotNil(viewModel.instructions)
11501152
}
11511153

1154+
// MARK: - `revertChanges`
1155+
1156+
func test_revertChanges_restores_shipments_and_resets_selected_index() {
1157+
// Given
1158+
let items = [sampleItem(id: 1, weight: 5, value: 10, quantity: 2),
1159+
sampleItem(id: 2, weight: 3, value: 2.5, quantity: 1)]
1160+
1161+
let viewModel = WooShippingSplitShipmentsViewModel(
1162+
order: sampleOrder,
1163+
config: WooShippingConfig.fake(),
1164+
items: items,
1165+
currencySettings: currencySettings,
1166+
shippingSettingsService: shippingSettingsService
1167+
)
1168+
1169+
// Store the initial state
1170+
let initialShipmentCount = viewModel.shipments.count
1171+
let initialFirstShipmentContentsCount = viewModel.shipments.first?.contents.count
1172+
1173+
// When - Make changes to shipments
1174+
viewModel.shipments.first?.contents.first?.childItemRows.first?.handleTap()
1175+
viewModel.moveSelectedItems(to: .newShipment)
1176+
viewModel.selectedShipmentIndex = 1
1177+
1178+
// Verify changes were made
1179+
XCTAssertEqual(viewModel.shipments.count, 2)
1180+
XCTAssertEqual(viewModel.selectedShipmentIndex, 1)
1181+
1182+
// When - Revert changes
1183+
viewModel.revertChanges()
1184+
1185+
// Then - Verify state is restored
1186+
XCTAssertEqual(viewModel.shipments.count, initialShipmentCount)
1187+
XCTAssertEqual(viewModel.shipments.first?.contents.count, initialFirstShipmentContentsCount)
1188+
XCTAssertEqual(viewModel.selectedShipmentIndex, 0)
1189+
}
1190+
11521191
// MARK: - `isMergeAllUnfulfilledAvailable`
11531192

11541193
func test_isMergeAllUnfulfilledAvailable_returns_false_when_no_unfulfilled_shipments() throws {

0 commit comments

Comments
 (0)