Skip to content

Commit b314170

Browse files
committed
Add unit tests for package item's total weight
1 parent 1e6becf commit b314170

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

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

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,82 @@ class ShippingLabelPackageItemViewModelTests: XCTestCase {
155155
// Then
156156
XCTAssertTrue(viewModel.packageListViewModel.showCustomPackagesHeader)
157157
}
158+
159+
func test_totalWeight_returns_the_expected_value() {
160+
// Given
161+
let orderItemAttributes = [OrderItemAttribute(metaID: 170, name: "Packaging", value: "Box")]
162+
let items = [MockOrderItem.sampleItem(name: "Easter Egg", productID: 1, quantity: 0.5),
163+
MockOrderItem.sampleItem(name: "Jacket", productID: 33, quantity: 1),
164+
MockOrderItem.sampleItem(name: "Italian Jacket", productID: 23, quantity: 2),
165+
MockOrderItem.sampleItem(name: "Jeans",
166+
productID: 49,
167+
variationID: 49,
168+
quantity: 1,
169+
attributes: orderItemAttributes)]
170+
let order = MockOrders().makeOrder().copy(siteID: sampleSiteID, items: items)
171+
let currencyFormatter = CurrencyFormatter(currencySettings: CurrencySettings())
172+
173+
// When
174+
let product1 = Product.fake().copy(siteID: sampleSiteID, productID: 1, virtual: false, weight: "120")
175+
let product2 = Product.fake().copy(siteID: sampleSiteID, productID: 33, virtual: true, weight: "9")
176+
let product3 = Product.fake().copy(siteID: sampleSiteID, productID: 23, virtual: false, weight: "1.44")
177+
let variation = ProductVariation.fake().copy(siteID: sampleSiteID,
178+
productID: 49,
179+
productVariationID: 49,
180+
attributes: [ProductVariationAttribute(id: 1, name: "Color", option: "Blue")])
181+
182+
let viewModel = ShippingLabelPackageItemViewModel(order: order,
183+
orderItems: order.items,
184+
packagesResponse: mockPackageResponse(),
185+
selectedPackageID: "Box",
186+
totalWeight: "",
187+
products: [product1, product2, product3],
188+
productVariations: [variation],
189+
onPackageSwitch: { _ in },
190+
formatter: currencyFormatter,
191+
weightUnit: "kg")
192+
193+
// Then
194+
XCTAssertEqual(viewModel.totalWeight, "72.88")
195+
}
196+
197+
func test_totalWeight_returns_the_expected_value_when_already_set() {
198+
// Given
199+
let orderItemAttributes = [OrderItemAttribute(metaID: 170, name: "Packaging", value: "Box")]
200+
let items = [MockOrderItem.sampleItem(name: "Easter Egg", productID: 1, quantity: 1),
201+
MockOrderItem.sampleItem(name: "Jacket", productID: 33, quantity: 1),
202+
MockOrderItem.sampleItem(name: "Italian Jacket", productID: 23, quantity: 2),
203+
MockOrderItem.sampleItem(name: "Jeans",
204+
productID: 49,
205+
variationID: 49,
206+
quantity: 1,
207+
attributes: orderItemAttributes)]
208+
let order = MockOrders().makeOrder().copy(siteID: sampleSiteID, items: items)
209+
let currencyFormatter = CurrencyFormatter(currencySettings: CurrencySettings())
210+
211+
// When
212+
let product1 = Product.fake().copy(siteID: sampleSiteID, productID: 1, virtual: false, weight: "123")
213+
let product2 = Product.fake().copy(siteID: sampleSiteID, productID: 33, virtual: true, weight: "9")
214+
let product3 = Product.fake().copy(siteID: sampleSiteID, productID: 23, virtual: false, weight: "1")
215+
let variation = ProductVariation.fake().copy(siteID: sampleSiteID,
216+
productID: 49,
217+
productVariationID: 49,
218+
attributes: [ProductVariationAttribute(id: 1, name: "Color", option: "Blue")])
219+
220+
let viewModel = ShippingLabelPackageItemViewModel(order: order,
221+
orderItems: order.items,
222+
packagesResponse: mockPackageResponse(),
223+
selectedPackageID: "Box",
224+
totalWeight: "30",
225+
products: [product1, product2, product3],
226+
productVariations: [variation],
227+
onPackageSwitch: { _ in },
228+
formatter: currencyFormatter,
229+
weightUnit: "kg")
230+
231+
// Then
232+
XCTAssertEqual(viewModel.totalWeight, "30")
233+
}
158234
}
159235

160236
// MARK: - Mocks

0 commit comments

Comments
 (0)