Skip to content

Commit dde6e6c

Browse files
committed
Add test for shipping line with zero amount
1 parent 973e131 commit dde6e6c

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

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

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,9 @@ final class ShippingLineDetailsViewModelTests: XCTestCase {
158158
// When
159159
viewModel.amount = "$11.30"
160160
viewModel.methodTitle = "Flat Rate"
161+
viewModel.saveData()
161162

162163
// Then
163-
viewModel.saveData()
164164
XCTAssertEqual(savedShippingLine?.total, "11.30")
165165
XCTAssertEqual(savedShippingLine?.methodTitle, "Flat Rate")
166166
}
@@ -180,13 +180,34 @@ final class ShippingLineDetailsViewModelTests: XCTestCase {
180180
// When
181181
viewModel.amount = "-11.30"
182182
viewModel.methodTitle = "Flat Rate"
183+
viewModel.saveData()
183184

184185
// Then
185-
viewModel.saveData()
186186
XCTAssertEqual(savedShippingLine?.total, "-11.30")
187187
XCTAssertEqual(savedShippingLine?.methodTitle, "Flat Rate")
188188
}
189189

190+
func test_view_model_allows_saving_zero_amount_and_creates_correct_shippping_line() {
191+
// Given
192+
var savedShippingLine: ShippingLine?
193+
let viewModel = ShippingLineDetailsViewModel(isExistingShippingLine: false,
194+
initialMethodTitle: "",
195+
shippingTotal: "",
196+
locale: usLocale,
197+
storeCurrencySettings: usStoreSettings,
198+
didSelectSave: { newShippingLine in
199+
savedShippingLine = newShippingLine
200+
})
201+
202+
// When
203+
viewModel.amount = "0"
204+
viewModel.saveData()
205+
206+
// Then
207+
XCTAssertFalse(viewModel.shouldDisableDoneButton)
208+
XCTAssertEqual(savedShippingLine?.total, "0")
209+
}
210+
190211
func test_view_model_creates_shippping_line_with_placeholder_for_method_title() {
191212
// Given
192213
var savedShippingLine: ShippingLine?

0 commit comments

Comments
 (0)