Skip to content

Commit 724247a

Browse files
committed
Fetch bookings upon opening details
1 parent 2d6c648 commit 724247a

File tree

3 files changed

+11
-18
lines changed

3 files changed

+11
-18
lines changed

WooCommerce/Classes/ViewModels/Booking Details/BookingDetailsViewModel.swift

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import Foundation
22
import Yosemite
3-
import protocol Storage.StorageManagerType
43

54
final class BookingDetailsViewModel: ObservableObject {
65
private let stores: StoresManager
76

87
private var booking: Booking
9-
private let storageManager: StorageManagerType
108

119
// EntityListener: Update / Deletion Notifications.
1210
///
@@ -17,12 +15,9 @@ final class BookingDetailsViewModel: ObservableObject {
1715
let navigationTitle: String
1816
@Published private(set) var sections: [Section] = []
1917

20-
init(booking: Booking,
21-
stores: StoresManager = ServiceLocator.stores,
22-
storageManager: StorageManagerType = ServiceLocator.storageManager) {
18+
init(booking: Booking, stores: StoresManager = ServiceLocator.stores) {
2319
self.booking = booking
2420
self.stores = stores
25-
self.storageManager = storageManager
2621

2722
navigationTitle = Self.navigationTitle(for: booking)
2823
setupSections(with: booking)
@@ -108,12 +103,7 @@ private extension BookingDetailsViewModel {
108103
siteID: booking.siteID,
109104
bookingID: booking.bookingID
110105
) { result in
111-
switch result {
112-
case .success:
113-
continuation.resume(returning: Void())
114-
case .failure(let error):
115-
continuation.resume(throwing: error)
116-
}
106+
continuation.resume(with: result)
117107
}
118108
stores.dispatch(action)
119109
}

WooCommerce/Classes/ViewRelated/Bookings/Booking Details/BookingDetailsView.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ struct BookingDetailsView: View {
4646
.refreshable {
4747
await viewModel.syncData()
4848
}
49+
.task {
50+
await viewModel.syncData()
51+
}
4952
.navigationBarTitleDisplayMode(.inline)
5053
.navigationTitle(viewModel.navigationTitle)
5154
.background(Color(uiColor: .systemGroupedBackground))

WooCommerce/WooCommerceTests/ViewRelated/Bookings/BookingDetailsViewModelTests.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ final class BookingDetailsViewModelTests: XCTestCase {
5757
let booking = Booking.fake().copy(orderInfo: orderInfo)
5858

5959
// When
60-
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager, storageManager: storageManager)
60+
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager)
6161

6262
// Then
6363
XCTAssertEqual(viewModel.sections.count, 6)
@@ -111,7 +111,7 @@ final class BookingDetailsViewModelTests: XCTestCase {
111111
let booking = Booking.fake().copy(orderInfo: orderInfo)
112112

113113
// When
114-
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager, storageManager: storageManager)
114+
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager)
115115

116116
// Then
117117
XCTAssertEqual(viewModel.sections.count, 5)
@@ -143,7 +143,7 @@ final class BookingDetailsViewModelTests: XCTestCase {
143143
let booking = Booking.fake().copy(orderInfo: orderInfo)
144144

145145
// When
146-
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager, storageManager: storageManager)
146+
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager)
147147

148148
// Then
149149
let headerSection = viewModel.sections.first { section in
@@ -186,7 +186,7 @@ final class BookingDetailsViewModelTests: XCTestCase {
186186
let booking = Booking.fake().copy(orderInfo: orderInfo)
187187

188188
// When
189-
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager, storageManager: storageManager)
189+
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager)
190190

191191
// Then
192192
let customerSection = viewModel.sections.first { section in
@@ -215,7 +215,7 @@ final class BookingDetailsViewModelTests: XCTestCase {
215215
let booking = Booking.fake().copy(bookingID: 12345)
216216

217217
// When
218-
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager, storageManager: storageManager)
218+
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager)
219219

220220
// Then
221221
XCTAssertTrue(viewModel.navigationTitle.contains("12345"))
@@ -224,7 +224,7 @@ final class BookingDetailsViewModelTests: XCTestCase {
224224
func test_syncData_triggers_booking_synchronization() async {
225225
// Given
226226
let booking = Booking.fake().copy(siteID: 123, bookingID: 456)
227-
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager, storageManager: storageManager)
227+
let viewModel = BookingDetailsViewModel(booking: booking, stores: storesManager)
228228

229229
let expectation = self.expectation(description: "Booking synchronization should be triggered")
230230

0 commit comments

Comments
 (0)