Skip to content

Commit 25c07af

Browse files
committed
Update trailing code and add unit tests
1 parent be880a6 commit 25c07af

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Creation/NewOrderViewModel.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -549,13 +549,13 @@ private extension NewOrderViewModel {
549549
/// Calculates what navigation trailing item should be shown depending on our internal state.
550550
///
551551
func configureNavigationTrailingItem() {
552-
Publishers.CombineLatest(orderSynchronizer.orderPublisher, $performingNetworkRequest)
553-
.map { [weak self] order, performingNetworkRequest -> NavigationItem in
554-
guard let self = self, !performingNetworkRequest else {
552+
Publishers.CombineLatest3(orderSynchronizer.orderPublisher, $performingNetworkRequest, Just(flow))
553+
.map { order, performingNetworkRequest, flow -> NavigationItem in
554+
guard !performingNetworkRequest else {
555555
return .loading
556556
}
557557

558-
switch self.flow {
558+
switch flow {
559559
case .creation:
560560
return .create
561561
case .editing:

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,17 @@ final class NewOrderViewModelTests: XCTestCase {
2222
XCTAssertEqual(viewModel.productRows.count, 0)
2323
}
2424

25+
func test_edition_view_model_has_a_navigation_done_button() {
26+
// Given
27+
let stores = MockStoresManager(sessionManager: .testingInstance)
28+
29+
// When
30+
let viewModel = NewOrderViewModel(siteID: sampleSiteID, flow: .editing(initialOrder: .fake()), stores: stores)
31+
32+
// Then
33+
XCTAssertEqual(viewModel.navigationTrailingItem, .done)
34+
}
35+
2536
func test_loading_indicator_is_enabled_during_network_request() {
2637
// Given
2738
let stores = MockStoresManager(sessionManager: .testingInstance)

0 commit comments

Comments
 (0)