Skip to content

Commit 2596c86

Browse files
committed
Update unit tests for doneButtonEnabled and completion block
1 parent 7683147 commit 2596c86

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/Create Shipping Label/Multi-package/ShippingLabelPackagesFormViewModelTests.swift

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,59 @@ class ShippingLabelPackagesFormViewModelTests: XCTestCase {
7878
XCTAssertEqual(viewModel.itemViewModels.last?.selectedPackageID, package2.packageID)
7979
}
8080

81+
func test_doneButtonEnabled_returns_true_when_all_packages_are_valid() {
82+
// Given
83+
let order = MockOrders().empty().copy(siteID: sampleSiteID)
84+
let package1 = ShippingLabelPackageAttributes(packageID: "Box 1", totalWeight: "12", productIDs: [1, 2, 3])
85+
let package2 = ShippingLabelPackageAttributes(packageID: "Box 2", totalWeight: "5.5", productIDs: [1, 2, 3])
86+
87+
// When
88+
let viewModel = ShippingLabelPackagesFormViewModel(order: order,
89+
packagesResponse: nil,
90+
selectedPackages: [package1, package2]) { _ in }
91+
92+
// Then
93+
XCTAssertTrue(viewModel.doneButtonEnabled)
94+
}
95+
96+
func test_doneButtonEnabled_returns_false_when_not_all_packages_are_valid() {
97+
// Given
98+
let order = MockOrders().empty().copy(siteID: sampleSiteID)
99+
let package1 = ShippingLabelPackageAttributes(packageID: "Box 1", totalWeight: "12", productIDs: [1, 2, 3])
100+
let package2 = ShippingLabelPackageAttributes(packageID: "Box 2", totalWeight: "5.5", productIDs: [1, 2, 3])
101+
102+
// When
103+
let viewModel = ShippingLabelPackagesFormViewModel(order: order,
104+
packagesResponse: nil,
105+
selectedPackages: [package1, package2]) { _ in }
106+
viewModel.itemViewModels.first?.totalWeight = "0"
107+
108+
// Then
109+
XCTAssertFalse(viewModel.doneButtonEnabled)
110+
}
111+
112+
func test_onCompletion_returns_correctly() {
113+
// Given
114+
let order = MockOrders().empty().copy(siteID: sampleSiteID)
115+
let package1 = ShippingLabelPackageAttributes(packageID: "Box 1", totalWeight: "12", productIDs: [1, 2, 3])
116+
let package2 = ShippingLabelPackageAttributes(packageID: "Box 2", totalWeight: "5.5", productIDs: [1, 2, 3])
117+
118+
var result: [ShippingLabelPackageAttributes] = []
119+
let completionHandler: ShippingLabelPackagesFormViewModel.Completion = { packages in
120+
result = packages
121+
}
122+
// When
123+
let viewModel = ShippingLabelPackagesFormViewModel(order: order,
124+
packagesResponse: nil,
125+
selectedPackages: [package1, package2],
126+
onCompletion: completionHandler)
127+
viewModel.confirmPackageSelection()
128+
129+
// Then
130+
XCTAssertEqual(result.count, 2)
131+
XCTAssertEqual(result.first?.packageID, package1.packageID)
132+
XCTAssertEqual(result.last?.packageID, package2.packageID)
133+
}
81134
}
82135

83136
// MARK: - Utils

0 commit comments

Comments
 (0)