Skip to content

Commit 7683147

Browse files
committed
Add unit tests for validatedPackageAttributes
1 parent 2e11852 commit 7683147

File tree

2 files changed

+79
-8
lines changed

2 files changed

+79
-8
lines changed

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

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,73 @@ class ShippingLabelPackageItemViewModelTests: XCTestCase {
256256
}
257257

258258
func test_isValidTotalWeight_returns_the_expected_value_when_the_totalWeight_is_not_valid() {
259+
// Given
260+
// Given
261+
let order = MockOrders().makeOrder().copy(siteID: sampleSiteID, items: [])
262+
let currencyFormatter = CurrencyFormatter(currencySettings: CurrencySettings())
263+
264+
let viewModel = ShippingLabelPackageItemViewModel(order: order,
265+
orderItems: order.items,
266+
packagesResponse: mockPackageResponse(),
267+
selectedPackageID: "Test Box",
268+
totalWeight: "10",
269+
products: [],
270+
productVariations: [],
271+
onPackageSwitch: { _ in },
272+
formatter: currencyFormatter,
273+
weightUnit: "kg")
274+
275+
// When
276+
viewModel.totalWeight = "0.0"
277+
278+
// Then
279+
XCTAssertFalse(viewModel.isValidTotalWeight)
280+
281+
// When
282+
viewModel.totalWeight = "1..1"
283+
284+
// Then
285+
XCTAssertFalse(viewModel.isValidTotalWeight)
286+
287+
// When
288+
viewModel.totalWeight = "test"
289+
290+
// Then
291+
XCTAssertFalse(viewModel.isValidTotalWeight)
292+
}
293+
294+
func test_validatedPackageAttributes_returns_correct_value_when_total_weight_is_valid() {
295+
// Given
296+
let items = [MockOrderItem.sampleItem(name: "Easter Egg", productID: 1, quantity: 0.5)]
297+
let order = MockOrders().makeOrder().copy(siteID: sampleSiteID, items: items)
298+
let currencyFormatter = CurrencyFormatter(currencySettings: CurrencySettings())
299+
300+
// When
301+
let product = Product.fake().copy(siteID: sampleSiteID, productID: 1, virtual: false, weight: "120")
302+
let viewModel = ShippingLabelPackageItemViewModel(order: order,
303+
orderItems: order.items,
304+
packagesResponse: mockPackageResponse(),
305+
selectedPackageID: "Test Box",
306+
totalWeight: "10",
307+
products: [product],
308+
productVariations: [],
309+
onPackageSwitch: { _ in },
310+
formatter: currencyFormatter,
311+
weightUnit: "kg")
312+
313+
// Then
314+
let expectedPackage1 = ShippingLabelPackageAttributes(packageID: "Test Box", totalWeight: "10", productIDs: [1])
315+
XCTAssertEqual(viewModel.validatedPackageAttributes, expectedPackage1)
316+
317+
// When
318+
viewModel.totalWeight = "12"
319+
320+
// Then
321+
let expectedPackage2 = ShippingLabelPackageAttributes(packageID: "Test Box", totalWeight: "12", productIDs: [1])
322+
XCTAssertEqual(viewModel.validatedPackageAttributes, expectedPackage2)
323+
}
324+
325+
func test_validatedPackageAttributes_returns_nil_when_the_totalWeight_is_not_valid() {
259326
// Given
260327
// Given
261328
let items = [MockOrderItem.sampleItem(name: "Easter Egg", productID: 1, quantity: 0.5)]
@@ -278,19 +345,19 @@ class ShippingLabelPackageItemViewModelTests: XCTestCase {
278345
viewModel.totalWeight = "0.0"
279346

280347
// Then
281-
XCTAssertFalse(viewModel.isValidTotalWeight)
348+
XCTAssertNil(viewModel.validatedPackageAttributes)
282349

283350
// When
284351
viewModel.totalWeight = "1..1"
285352

286353
// Then
287-
XCTAssertFalse(viewModel.isValidTotalWeight)
354+
XCTAssertNil(viewModel.validatedPackageAttributes)
288355

289356
// When
290357
viewModel.totalWeight = "test"
291358

292359
// Then
293-
XCTAssertFalse(viewModel.isValidTotalWeight)
360+
XCTAssertNil(viewModel.validatedPackageAttributes)
294361
}
295362
}
296363

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ class ShippingLabelPackagesFormViewModelTests: XCTestCase {
3434
let package2 = ShippingLabelPackageAttributes(packageID: "Box 2", totalWeight: "5.5", productIDs: [1, 2, 3])
3535

3636
// When & Then
37-
let viewModel1 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [])
37+
let viewModel1 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: []) { _ in }
3838
XCTAssertFalse(viewModel1.foundMultiplePackages)
3939

40-
let viewModel2 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [package1])
40+
let viewModel2 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [package1]) { _ in }
4141
XCTAssertFalse(viewModel2.foundMultiplePackages)
4242

43-
let viewModel3 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [package1, package2])
43+
let viewModel3 = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [package1, package2]) { _ in }
4444
XCTAssertTrue(viewModel3.foundMultiplePackages)
4545
}
4646

@@ -50,7 +50,11 @@ class ShippingLabelPackagesFormViewModelTests: XCTestCase {
5050
insert(MockShippingLabelAccountSettings.sampleAccountSettings(siteID: sampleSiteID, lastSelectedPackageID: "package-1"))
5151

5252
// When
53-
let viewModel = ShippingLabelPackagesFormViewModel(order: order, packagesResponse: nil, selectedPackages: [], storageManager: storageManager)
53+
let viewModel = ShippingLabelPackagesFormViewModel(order: order,
54+
packagesResponse: nil,
55+
selectedPackages: [],
56+
onCompletion: { _ in },
57+
storageManager: storageManager)
5458

5559
// Then
5660
XCTAssertEqual(viewModel.itemViewModels.count, 1)
@@ -66,7 +70,7 @@ class ShippingLabelPackagesFormViewModelTests: XCTestCase {
6670
// When
6771
let viewModel = ShippingLabelPackagesFormViewModel(order: order,
6872
packagesResponse: nil,
69-
selectedPackages: [package1, package2])
73+
selectedPackages: [package1, package2]) { _ in }
7074

7175
// Then
7276
XCTAssertEqual(viewModel.itemViewModels.count, 2)

0 commit comments

Comments
 (0)