@@ -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