Skip to content

Commit cc4d1c1

Browse files
committed
Add shipping line data test on NewOrderViewModel
1 parent 5fbd0bd commit cc4d1c1

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Orders/Order Creation/NewOrderViewModelTests.swift

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,40 @@ class NewOrderViewModelTests: XCTestCase {
345345
XCTAssertEqual(viewModel.paymentDataViewModel.itemsTotal, "£17.00")
346346
XCTAssertEqual(viewModel.paymentDataViewModel.orderTotal, "£17.00")
347347
}
348+
349+
func test_payment_section_is_updated_when_shipping_line_updated() {
350+
// Given
351+
let currencySettings = CurrencySettings(currencyCode: .GBP, currencyPosition: .left, thousandSeparator: "", decimalSeparator: ".", numberOfDecimals: 2)
352+
let product = Product.fake().copy(siteID: sampleSiteID, productID: sampleProductID, price: "8.50", purchasable: true)
353+
let storageManager = MockStorageManager()
354+
storageManager.insertSampleProduct(readOnlyProduct: product)
355+
let viewModel = NewOrderViewModel(siteID: sampleSiteID, storageManager: storageManager, currencySettings: currencySettings)
356+
357+
// When
358+
viewModel.addProductViewModel.selectProduct(product.productID)
359+
let testShippingLine = ShippingLine(shippingID: 0,
360+
methodTitle: "Flat Rate",
361+
methodID: "other",
362+
total: "10",
363+
totalTax: "",
364+
taxes: [])
365+
viewModel.saveShippingLine(testShippingLine)
366+
367+
// Then
368+
XCTAssertTrue(viewModel.paymentDataViewModel.shouldShowShippingTotal)
369+
XCTAssertEqual(viewModel.paymentDataViewModel.itemsTotal, "£8.50")
370+
XCTAssertEqual(viewModel.paymentDataViewModel.shippingTotal, "£10.00")
371+
XCTAssertEqual(viewModel.paymentDataViewModel.orderTotal, "£18.50")
372+
373+
// When
374+
viewModel.saveShippingLine(nil)
375+
376+
// Then
377+
XCTAssertFalse(viewModel.paymentDataViewModel.shouldShowShippingTotal)
378+
XCTAssertEqual(viewModel.paymentDataViewModel.itemsTotal, "£8.50")
379+
XCTAssertEqual(viewModel.paymentDataViewModel.shippingTotal, "£0.00")
380+
XCTAssertEqual(viewModel.paymentDataViewModel.orderTotal, "£8.50")
381+
}
348382
}
349383

350384
private extension MockStorageManager {

0 commit comments

Comments
 (0)