Skip to content

Commit f535174

Browse files
committed
Update tests
1 parent 537f561 commit f535174

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShippingShipmentDetailsViewModelTests.swift

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,7 @@ final class WooShippingShipmentDetailsViewModelTests: XCTestCase {
634634

635635
// Then
636636
XCTAssertNil(viewModel.selectedRate)
637+
XCTAssertNil(viewModel.shippingService?.selectedRate)
637638
}
638639

639640
func test_changing_destination_address_resets_selected_rate() throws {
@@ -654,6 +655,71 @@ final class WooShippingShipmentDetailsViewModelTests: XCTestCase {
654655

655656
// Then
656657
XCTAssertNil(viewModel.selectedRate)
658+
XCTAssertNil(viewModel.shippingService?.selectedRate)
659+
}
660+
661+
func test_changing_shipment_weight_resets_selected_rate() throws {
662+
// Given
663+
let originAddressSubject = CurrentValueSubject<WooShippingAddress?, Never>(sampleOriginAddress(country: "US", state: "NY"))
664+
let destinationAddressSubject = CurrentValueSubject<WooShippingAddress?, Never>(sampleDestinationAddress(country: "US", state: "CA"))
665+
let viewModel = WooShippingShipmentDetailsViewModel(order: Order.fake(),
666+
shipment: sampleShipment,
667+
shippingLabel: nil,
668+
originAddress: originAddressSubject.eraseToAnyPublisher(),
669+
destinationAddress: destinationAddressSubject.eraseToAnyPublisher())
670+
671+
viewModel.shippingService?.onSelectRate?(sampleSelectedRate())
672+
XCTAssertNotNil(viewModel.selectedRate, "Precondition failed: selectedRate should not be nil")
673+
674+
// When
675+
viewModel.shipmentWeight = "10"
676+
677+
// Then
678+
XCTAssertNil(viewModel.selectedRate)
679+
XCTAssertNil(viewModel.shippingService?.selectedRate)
680+
}
681+
682+
func test_changing_hazmat_category_resets_selected_rate() throws {
683+
// Given
684+
let originAddressSubject = CurrentValueSubject<WooShippingAddress?, Never>(sampleOriginAddress(country: "US", state: "NY"))
685+
let destinationAddressSubject = CurrentValueSubject<WooShippingAddress?, Never>(sampleDestinationAddress(country: "US", state: "CA"))
686+
let viewModel = WooShippingShipmentDetailsViewModel(order: Order.fake(),
687+
shipment: sampleShipment,
688+
shippingLabel: nil,
689+
originAddress: originAddressSubject.eraseToAnyPublisher(),
690+
destinationAddress: destinationAddressSubject.eraseToAnyPublisher())
691+
692+
viewModel.shippingService?.onSelectRate?(sampleSelectedRate())
693+
XCTAssertNotNil(viewModel.selectedRate, "Precondition failed: selectedRate should not be nil")
694+
695+
// When
696+
viewModel.hazmatCategory = .class1
697+
698+
// Then
699+
XCTAssertNil(viewModel.selectedRate)
700+
XCTAssertNil(viewModel.shippingService?.selectedRate)
701+
}
702+
703+
func test_changing_customs_form_resets_selected_rate() throws {
704+
// Given
705+
let originAddressSubject = CurrentValueSubject<WooShippingAddress?, Never>(sampleOriginAddress(country: "US", state: "NY"))
706+
let destinationAddressSubject = CurrentValueSubject<WooShippingAddress?, Never>(sampleDestinationAddress(country: "US", state: "CA"))
707+
let viewModel = WooShippingShipmentDetailsViewModel(order: Order.fake(),
708+
shipment: sampleShipment,
709+
shippingLabel: nil,
710+
originAddress: originAddressSubject.eraseToAnyPublisher(),
711+
destinationAddress: destinationAddressSubject.eraseToAnyPublisher())
712+
713+
viewModel.shippingService?.onSelectRate?(sampleSelectedRate())
714+
XCTAssertNotNil(viewModel.selectedRate, "Precondition failed: selectedRate should not be nil")
715+
716+
// When
717+
viewModel.customsFormViewModel.returnToSenderIfNotDelivered = true
718+
viewModel.customsFormViewModel.onDismiss()
719+
720+
// Then
721+
XCTAssertNil(viewModel.selectedRate)
722+
XCTAssertNil(viewModel.shippingService?.selectedRate)
657723
}
658724
}
659725

0 commit comments

Comments
 (0)