Skip to content

Commit 83d71fe

Browse files
committed
Add foundMultiplePackages for packages form view model
1 parent c799874 commit 83d71fe

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/Create Shipping Label Form/Package Details/Multi-package/ShippingLabelPackagesFormViewModel.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ import protocol Storage.StorageManagerType
99
///
1010
final class ShippingLabelPackagesFormViewModel: ObservableObject {
1111

12+
var foundMultiplePackages: Bool {
13+
selectedPackages.count > 1
14+
}
15+
1216
/// References of view models for child items.
1317
///
1418
@Published private(set) var itemViewModels: [ShippingLabelPackageItemViewModel] = []

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,23 @@ class ShippingLabelPackagesFormViewModelTests: XCTestCase {
2727
super.tearDown()
2828
}
2929

30+
func test_foundMultiplePackages_returns_correctly() {
31+
// Given
32+
let order = MockOrders().empty().copy(siteID: sampleSiteID)
33+
let package1 = ShippingLabelPackageAttributes(packageID: "Box 1", totalWeight: "12", productIDs: [1, 2, 3])
34+
let package2 = ShippingLabelPackageAttributes(packageID: "Box 2", totalWeight: "5.5", productIDs: [1, 2, 3])
35+
36+
// When & Then
37+
let viewModel1 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [])
38+
XCTAssertFalse(viewModel1.foundMultiplePackages)
39+
40+
let viewModel2 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [package1])
41+
XCTAssertFalse(viewModel2.foundMultiplePackages)
42+
43+
let viewModel3 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [package1, package2])
44+
XCTAssertTrue(viewModel3.foundMultiplePackages)
45+
}
46+
3047
func test_itemViewModels_returns_correctly_when_initial_selectedPackages_is_empty() {
3148
// Given
3249
let order = MockOrders().empty().copy(siteID: sampleSiteID)

0 commit comments

Comments
 (0)