Skip to content

Commit 5bc1a76

Browse files
committed
Add test for a customs form presence in package after a data prefill
1 parent 3c44f16 commit 5bc1a76

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

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

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -816,9 +816,65 @@ final class WooShippingShipmentDetailsViewModelTests: XCTestCase {
816816

817817
// Then
818818
XCTAssertEqual(customsItemViewModel.selectedCountry?.code, expectedCountry)
819+
}
820+
821+
func test_package_contains_complete_customs_form_when_required_data_is_prefilled() throws {
822+
// Setup
823+
let originAddressSubject = PassthroughSubject<WooShippingAddress?, Never>()
824+
let destinationAddressSubject = PassthroughSubject<WooShippingAddress?, Never>()
825+
let stores = MockStoresManager(sessionManager: .testingInstance)
826+
let storageManager = MockStorageManager()
827+
828+
// Given
829+
let originCountry = Country(code: "US", name: "United States", states: [])
830+
let destinationCountry = Country(code: "CA", name: "Canada", states: [])
831+
832+
let countries = [
833+
originCountry,
834+
destinationCountry
835+
]
836+
837+
stores.whenReceivingAction(ofType: DataAction.self) { action in
838+
switch action {
839+
case let .synchronizeCountries(_, onCompletion):
840+
storageManager.insertSampleCountries(readOnlyCountries: countries)
841+
onCompletion(.success(countries))
842+
}
843+
}
844+
845+
let shipment = sampleShipment
846+
847+
let viewModel = WooShippingShipmentDetailsViewModel(
848+
order: Order.fake(),
849+
shipment: shipment,
850+
shippingLabel: nil,
851+
originAddress: originAddressSubject.eraseToAnyPublisher(),
852+
destinationAddress: destinationAddressSubject.eraseToAnyPublisher(),
853+
stores: stores,
854+
storageManager: storageManager
855+
)
856+
857+
// When
858+
destinationAddressSubject.send(sampleDestinationAddress(country: destinationCountry.code, state: ""))
859+
originAddressSubject.send(sampleOriginAddress(country: originCountry.code, state: ""))
860+
861+
viewModel.selectPackage(samplePackageData())
862+
863+
// Then
864+
XCTAssertTrue(viewModel.customsInformationIsCompleted)
819865

820866
waitUntil {
821-
viewModel.customsForm?.items.first?.originCountry == expectedCountry
867+
guard let customsForm = viewModel.currentPackage?.customsForm else {
868+
return false
869+
}
870+
871+
let customsFormItem = customsForm.items[0]
872+
let shipmentItem = shipment.items[0]
873+
874+
return customsFormItem.description == shipmentItem.name &&
875+
customsFormItem.value == shipmentItem.value &&
876+
customsFormItem.weight == shipmentItem.weight &&
877+
customsFormItem.originCountry == originCountry.code
822878
}
823879
}
824880
}

0 commit comments

Comments
 (0)