Skip to content

Commit 9264226

Browse files
committed
Update unit tests for package item and package details
1 parent fdb0222 commit 9264226

File tree

2 files changed

+61
-66
lines changed

2 files changed

+61
-66
lines changed

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

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class ShippingLabelPackageItemViewModelTests: XCTestCase {
1818
totalWeight: "",
1919
products: [],
2020
productVariations: [],
21+
onPackageSwitch: { _ in },
2122
formatter: currencyFormatter)
2223

2324
// Then
@@ -58,6 +59,7 @@ class ShippingLabelPackageItemViewModelTests: XCTestCase {
5859
totalWeight: "",
5960
products: [product1, product2, product3],
6061
productVariations: [variation],
62+
onPackageSwitch: { _ in },
6163
formatter: currencyFormatter,
6264
weightUnit: "kg")
6365

@@ -86,18 +88,52 @@ class ShippingLabelPackageItemViewModelTests: XCTestCase {
8688
totalWeight: "",
8789
products: [],
8890
productVariations: [],
91+
onPackageSwitch: { _ in },
8992
formatter: currencyFormatter,
9093
weightUnit: "kg")
9194

92-
XCTAssertNil(viewModel.selectedCustomPackage)
93-
XCTAssertNil(viewModel.selectedPredefinedPackage)
95+
// When
96+
viewModel.packageListViewModel.didSelectPackage(customPackage.title)
97+
98+
// Then
99+
XCTAssertEqual(viewModel.packageListViewModel.selectedCustomPackage, customPackage)
100+
XCTAssertNil(viewModel.packageListViewModel.selectedPredefinedPackage)
101+
}
102+
103+
func test_confirmPackageSelection_returns_the_expected_value() {
104+
// Given
105+
let customPackage = ShippingLabelCustomPackage(isUserDefined: true,
106+
title: "Box",
107+
isLetter: true,
108+
dimensions: "3 x 10 x 4",
109+
boxWeight: 10,
110+
maxWeight: 11)
111+
let order = MockOrders().empty().copy(siteID: sampleSiteID)
112+
let currencyFormatter = CurrencyFormatter(currencySettings: CurrencySettings())
113+
114+
var packageToTest: ShippingLabelPackageAttributes?
115+
let packageSwitchHandler: ShippingLabelPackageItemViewModel.PackageSwitchHandler = { package in
116+
packageToTest = package
117+
}
118+
let viewModel = ShippingLabelPackageItemViewModel(order: order,
119+
orderItems: order.items,
120+
packagesResponse: mockPackageResponse(),
121+
selectedPackageID: "Test Box",
122+
totalWeight: "",
123+
products: [],
124+
productVariations: [],
125+
onPackageSwitch: packageSwitchHandler,
126+
formatter: currencyFormatter,
127+
weightUnit: "kg")
94128

95129
// When
96-
viewModel.didSelectPackage(customPackage.title)
130+
viewModel.packageListViewModel.didSelectPackage(customPackage.title)
131+
viewModel.packageListViewModel.confirmPackageSelection()
97132

98133
// Then
99-
XCTAssertEqual(viewModel.selectedCustomPackage, customPackage)
100-
XCTAssertNil(viewModel.selectedPredefinedPackage)
134+
XCTAssertEqual(packageToTest, ShippingLabelPackageAttributes(packageID: customPackage.title,
135+
totalWeight: "",
136+
productIDs: order.items.map { $0.productOrVariationID }))
101137
}
102138

103139
func test_showCustomPackagesHeader_returns_the_expected_value() {
@@ -111,12 +147,13 @@ class ShippingLabelPackageItemViewModelTests: XCTestCase {
111147
totalWeight: "10",
112148
products: [],
113149
productVariations: [],
150+
onPackageSwitch: { _ in },
114151
formatter: currencyFormatter,
115152
weightUnit: "kg")
116153

117154

118155
// Then
119-
XCTAssertTrue(viewModel.showCustomPackagesHeader)
156+
XCTAssertTrue(viewModel.packageListViewModel.showCustomPackagesHeader)
120157
}
121158
}
122159

WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/Create Shipping Label/ShippingLabelPackageDetailsViewModelTests.swift

Lines changed: 18 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,15 @@ final class ShippingLabelPackageDetailsViewModelTests: XCTestCase {
111111
weightUnit: "kg")
112112

113113

114-
XCTAssertNil(viewModel.selectedCustomPackage)
115-
XCTAssertNil(viewModel.selectedPredefinedPackage)
114+
XCTAssertNil(viewModel.packageListViewModel.selectedCustomPackage)
115+
XCTAssertNil(viewModel.packageListViewModel.selectedPredefinedPackage)
116116

117117
// When
118-
viewModel.didSelectPackage(customPackage.title)
118+
viewModel.packageListViewModel.didSelectPackage(customPackage.title)
119119

120120
// Then
121-
XCTAssertEqual(viewModel.selectedCustomPackage, customPackage)
122-
XCTAssertNil(viewModel.selectedPredefinedPackage)
121+
XCTAssertEqual(viewModel.packageListViewModel.selectedCustomPackage, customPackage)
122+
XCTAssertNil(viewModel.packageListViewModel.selectedPredefinedPackage)
123123
}
124124

125125
func test_confirmPackageSelection_returns_the_expected_value() {
@@ -140,12 +140,12 @@ final class ShippingLabelPackageDetailsViewModelTests: XCTestCase {
140140
storageManager: storageManager,
141141
weightUnit: "kg")
142142

143-
XCTAssertNil(viewModel.selectedCustomPackage)
144-
XCTAssertNil(viewModel.selectedPredefinedPackage)
143+
XCTAssertNil(viewModel.packageListViewModel.selectedCustomPackage)
144+
XCTAssertNil(viewModel.packageListViewModel.selectedPredefinedPackage)
145145

146146
// When
147-
viewModel.didSelectPackage(customPackage.title)
148-
viewModel.confirmPackageSelection()
147+
viewModel.packageListViewModel.didSelectPackage(customPackage.title)
148+
viewModel.packageListViewModel.confirmPackageSelection()
149149

150150
// Then
151151
XCTAssertEqual(viewModel.selectedPackageID, customPackage.title)
@@ -165,7 +165,7 @@ final class ShippingLabelPackageDetailsViewModelTests: XCTestCase {
165165

166166

167167
// Then
168-
XCTAssertTrue(viewModel.showCustomPackagesHeader)
168+
XCTAssertTrue(viewModel.packageListViewModel.showCustomPackagesHeader)
169169
}
170170

171171
func test_selected_package_defaults_to_last_selected_package() {
@@ -279,8 +279,8 @@ final class ShippingLabelPackageDetailsViewModelTests: XCTestCase {
279279
formatter: currencyFormatter,
280280
storageManager: storageManager,
281281
weightUnit: "kg")
282-
viewModel.didSelectPackage("Box")
283-
viewModel.confirmPackageSelection()
282+
viewModel.packageListViewModel.didSelectPackage("Box")
283+
viewModel.packageListViewModel.confirmPackageSelection()
284284

285285
// Then
286286
XCTAssertEqual(viewModel.totalWeight, "72.88")
@@ -349,8 +349,8 @@ final class ShippingLabelPackageDetailsViewModelTests: XCTestCase {
349349
XCTAssertEqual(viewModel.totalWeight, "120.0")
350350

351351
// When
352-
viewModel.didSelectPackage("Box")
353-
viewModel.confirmPackageSelection()
352+
viewModel.packageListViewModel.didSelectPackage("Box")
353+
viewModel.packageListViewModel.confirmPackageSelection()
354354

355355
// Then
356356
XCTAssertEqual(viewModel.totalWeight, "130.0")
@@ -376,8 +376,8 @@ final class ShippingLabelPackageDetailsViewModelTests: XCTestCase {
376376
XCTAssertEqual(viewModel.totalWeight, "500")
377377

378378
// When new package with additional weight is selected
379-
viewModel.didSelectPackage("Box")
380-
viewModel.confirmPackageSelection()
379+
viewModel.packageListViewModel.didSelectPackage("Box")
380+
viewModel.packageListViewModel.confirmPackageSelection()
381381

382382
// Then
383383
XCTAssertEqual(viewModel.totalWeight, "500")
@@ -409,54 +409,12 @@ final class ShippingLabelPackageDetailsViewModelTests: XCTestCase {
409409
XCTAssertEqual(viewModel.totalWeight, "500")
410410

411411
// When new package with additional weight is selected
412-
viewModel.didSelectPackage("Box")
413-
viewModel.confirmPackageSelection()
412+
viewModel.packageListViewModel.didSelectPackage("Box")
413+
viewModel.packageListViewModel.confirmPackageSelection()
414414

415415
// Then
416416
XCTAssertEqual(viewModel.totalWeight, "500")
417417
}
418-
419-
func test_hasCustomOrPredefinedPackages_returns_the_expected_value() {
420-
// Given
421-
let order = MockOrders().empty().copy(siteID: sampleSiteID)
422-
let currencyFormatter = CurrencyFormatter(currencySettings: CurrencySettings())
423-
424-
// When
425-
let viewModelWithoutPackages = ShippingLabelPackageDetailsViewModel(order: order,
426-
packagesResponse: nil,
427-
selectedPackages: [],
428-
formatter: currencyFormatter,
429-
stores: stores,
430-
storageManager: storageManager,
431-
weightUnit: "kg")
432-
let viewModelWithPackages = ShippingLabelPackageDetailsViewModel(order: order,
433-
packagesResponse: mockPackageResponse(),
434-
selectedPackages: [],
435-
formatter: currencyFormatter,
436-
stores: stores,
437-
storageManager: storageManager,
438-
weightUnit: "kg")
439-
let viewModelWithCustomPackages = ShippingLabelPackageDetailsViewModel(order: order,
440-
packagesResponse: mockPackageResponse(withCustom: true, withPredefined: false),
441-
selectedPackages: [],
442-
formatter: currencyFormatter,
443-
stores: stores,
444-
storageManager: storageManager,
445-
weightUnit: "kg")
446-
let viewModelWithPredefinedPackages = ShippingLabelPackageDetailsViewModel(order: order,
447-
packagesResponse: mockPackageResponse(withCustom: false, withPredefined: true),
448-
selectedPackages: [],
449-
formatter: currencyFormatter,
450-
stores: stores,
451-
storageManager: storageManager,
452-
weightUnit: "kg")
453-
454-
// Then
455-
XCTAssertFalse(viewModelWithoutPackages.hasCustomOrPredefinedPackages)
456-
XCTAssertTrue(viewModelWithPackages.hasCustomOrPredefinedPackages)
457-
XCTAssertTrue(viewModelWithCustomPackages.hasCustomOrPredefinedPackages)
458-
XCTAssertTrue(viewModelWithPredefinedPackages.hasCustomOrPredefinedPackages)
459-
}
460418
}
461419

462420
// MARK: - Utils

0 commit comments

Comments
 (0)