Skip to content

Commit 2493eee

Browse files
committed
Handle changes to package response on shipping label purchase form
1 parent 49f74e5 commit 2493eee

File tree

4 files changed

+24
-11
lines changed

4 files changed

+24
-11
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/Create Shipping Label Form/Package Details/ShippingLabelPackageDetails.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ struct ShippingLabelPackageDetails: View {
88

99
/// Completion callback
1010
///
11-
typealias Completion = (_ selectedPackageID: String?, _ totalPackageWeight: String?) -> Void
11+
typealias Completion = (_ packagesResponse: ShippingLabelPackagesResponse?, _ selectedPackageID: String?, _ totalPackageWeight: String?) -> Void
1212
private let onCompletion: Completion
1313

1414
init(viewModel: ShippingLabelPackageDetailsViewModel, completion: @escaping Completion) {
@@ -82,7 +82,7 @@ struct ShippingLabelPackageDetails: View {
8282
.navigationBarItems(trailing: Button(action: {
8383
ServiceLocator.analytics.track(.shippingLabelPurchaseFlow,
8484
withProperties: ["state": "packages_selected"])
85-
onCompletion(viewModel.selectedPackageID, viewModel.totalWeight)
85+
onCompletion(viewModel.packagesResponse, viewModel.selectedPackageID, viewModel.totalWeight)
8686
presentation.wrappedValue.dismiss()
8787
}, label: {
8888
Text(Localization.doneButton)
@@ -120,12 +120,12 @@ struct ShippingLabelPackageDetails_Previews: PreviewProvider {
120120
selectedPackageID: nil,
121121
totalWeight: nil)
122122

123-
ShippingLabelPackageDetails(viewModel: viewModel, completion: { (selectedPackageID, totalPackageWeight) in
123+
ShippingLabelPackageDetails(viewModel: viewModel, completion: { (_, _, _) in
124124
})
125125
.environment(\.colorScheme, .light)
126126
.previewDisplayName("Light")
127127

128-
ShippingLabelPackageDetails(viewModel: viewModel, completion: { (selectedPackageID, totalPackageWeight) in
128+
ShippingLabelPackageDetails(viewModel: viewModel, completion: { (_, _, _) in
129129
})
130130
.environment(\.colorScheme, .dark)
131131
.previewDisplayName("Dark")

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/Create Shipping Label Form/ShippingLabelFormViewController.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -422,8 +422,10 @@ private extension ShippingLabelFormViewController {
422422
packagesResponse: viewModel.packagesResponse,
423423
selectedPackageID: selectedPackageID,
424424
totalWeight: totalPackageWeight)
425-
let packageDetails = ShippingLabelPackageDetails(viewModel: vm) { [weak self] (selectedPackageID, totalPackageWeight) in
426-
self?.viewModel.handlePackageDetailsValueChanges(selectedPackageID: selectedPackageID, totalPackageWeight: totalPackageWeight)
425+
let packageDetails = ShippingLabelPackageDetails(viewModel: vm) { [weak self] (packagesResponse, selectedPackageID, totalPackageWeight) in
426+
self?.viewModel.handlePackageDetailsValueChanges(packagesResponse: packagesResponse,
427+
selectedPackageID: selectedPackageID,
428+
totalPackageWeight: totalPackageWeight)
427429
}
428430

429431
let hostingVC = UIHostingController(rootView: packageDetails)

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/Create Shipping Label Form/ShippingLabelFormViewModel.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,8 @@ final class ShippingLabelFormViewModel {
196196
}
197197
}
198198

199-
func handlePackageDetailsValueChanges(selectedPackageID: String?, totalPackageWeight: String?) {
199+
func handlePackageDetailsValueChanges(packagesResponse: ShippingLabelPackagesResponse?, selectedPackageID: String?, totalPackageWeight: String?) {
200+
self.packagesResponse = packagesResponse
200201
self.selectedPackageID = selectedPackageID
201202
self.totalPackageWeight = totalPackageWeight
202203

WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/Create Shipping Label/ShippingLabelFormViewModelTests.swift

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,13 +169,17 @@ final class ShippingLabelFormViewModelTests: XCTestCase {
169169
let shippingLabelFormViewModel = ShippingLabelFormViewModel(order: MockOrders().makeOrder(),
170170
originAddress: nil,
171171
destinationAddress: nil)
172+
let expectedPackageResponse = ShippingLabelPackagesResponse.fake()
172173
let expectedPackageID = "my-package-id"
173174
let expectedPackageWeight = "55"
174175

175176
// When
176-
shippingLabelFormViewModel.handlePackageDetailsValueChanges(selectedPackageID: expectedPackageID, totalPackageWeight: expectedPackageWeight)
177+
shippingLabelFormViewModel.handlePackageDetailsValueChanges(packagesResponse: expectedPackageResponse,
178+
selectedPackageID: expectedPackageID,
179+
totalPackageWeight: expectedPackageWeight)
177180

178181
// Then
182+
XCTAssertEqual(shippingLabelFormViewModel.packagesResponse, expectedPackageResponse)
179183
XCTAssertEqual(shippingLabelFormViewModel.selectedPackageID, expectedPackageID)
180184
XCTAssertEqual(shippingLabelFormViewModel.totalPackageWeight, expectedPackageWeight)
181185
}
@@ -197,7 +201,9 @@ final class ShippingLabelFormViewModelTests: XCTestCase {
197201
XCTAssertNotNil(shippingLabelFormViewModel.selectedRate)
198202

199203
// When
200-
shippingLabelFormViewModel.handlePackageDetailsValueChanges(selectedPackageID: expectedPackageID, totalPackageWeight: expectedPackageWeight)
204+
shippingLabelFormViewModel.handlePackageDetailsValueChanges(packagesResponse: ShippingLabelPackagesResponse.fake(),
205+
selectedPackageID: expectedPackageID,
206+
totalPackageWeight: expectedPackageWeight)
201207

202208
// Then
203209
XCTAssertNil(shippingLabelFormViewModel.selectedRate)
@@ -229,7 +235,9 @@ final class ShippingLabelFormViewModelTests: XCTestCase {
229235
XCTAssertNotNil(shippingLabelFormViewModel.selectedRate)
230236

231237
// When
232-
shippingLabelFormViewModel.handlePackageDetailsValueChanges(selectedPackageID: expectedPackageID, totalPackageWeight: expectedPackageWeight)
238+
shippingLabelFormViewModel.handlePackageDetailsValueChanges(packagesResponse: ShippingLabelPackagesResponse.fake(),
239+
selectedPackageID: expectedPackageID,
240+
totalPackageWeight: expectedPackageWeight)
233241

234242
// Then
235243
XCTAssertEqual(shippingLabelFormViewModel.customsForms.first?.packageID, expectedPackageID)
@@ -865,7 +873,9 @@ final class ShippingLabelFormViewModelTests: XCTestCase {
865873
// When
866874
viewModel.handleOriginAddressValueChanges(address: MockShippingLabelAddress.sampleAddress(phone: "0123456789", country: "US"), validated: true)
867875
viewModel.handleDestinationAddressValueChanges(address: MockShippingLabelAddress.sampleAddress(country: "VN"), validated: true)
868-
viewModel.handlePackageDetailsValueChanges(selectedPackageID: expectedPackageID, totalPackageWeight: "55")
876+
viewModel.handlePackageDetailsValueChanges(packagesResponse: ShippingLabelPackagesResponse.fake(),
877+
selectedPackageID: expectedPackageID,
878+
totalPackageWeight: "55")
869879

870880
// Then
871881
let defaultForms = viewModel.customsForms

0 commit comments

Comments
 (0)