diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShippingCreateLabelsViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShippingCreateLabelsViewModelTests.swift index 77bb9f6697d..2eb2b7f5852 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShippingCreateLabelsViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShippingCreateLabelsViewModelTests.swift @@ -511,15 +511,54 @@ final class WooShippingCreateLabelsViewModelTests: XCTestCase { // Given let address = Address.fake().copy(address1: "1 Main Street", city: "San Francisco", state: "CA", postcode: "12345", country: "US") let order = Order.fake().copy(shippingAddress: address) + let stores = MockStoresManager(sessionManager: .testingInstance) + stores.whenReceivingAction(ofType: WooShippingAction.self) { action in + switch action { + case .verifyDestinationAddress(_, _, let completion): + completion(.success(WooShippingVerifyDestinationAddressSuccess(normalizedAddress: WooShippingAddress.fake(), + isTrivialNormalization: false, + isVerified: false))) + case .loadPackages, .loadOriginAddresses: + break + default: + XCTFail("Unexpected action: \(action)") + } + } // When - let viewModel = WooShippingCreateLabelsViewModel(order: order) + let viewModel = WooShippingCreateLabelsViewModel(order: order, stores: stores) // Then XCTAssertEqual(viewModel.destinationAddressStatus, .unverified) XCTAssertNotNil(viewModel.destinationAddressStatusNoticeLabel) } + func test_destinationAddressStatus_verified_and_noticeLabel_set_for_verified_address() { + // Given + let address = Address.fake().copy(address1: "1 Main Street", city: "San Francisco", state: "CA", postcode: "12345", country: "US") + let order = Order.fake().copy(shippingAddress: address) + let stores = MockStoresManager(sessionManager: .testingInstance) + stores.whenReceivingAction(ofType: WooShippingAction.self) { action in + switch action { + case .verifyDestinationAddress(_, _, let completion): + completion(.success(WooShippingVerifyDestinationAddressSuccess(normalizedAddress: WooShippingAddress.fake(), + isTrivialNormalization: nil, + isVerified: true))) + case .loadPackages, .loadOriginAddresses: + break + default: + XCTFail("Unexpected action: \(action)") + } + } + + // When + let viewModel = WooShippingCreateLabelsViewModel(order: order, stores: stores) + + // Then + XCTAssertEqual(viewModel.destinationAddressStatus, .verified) + XCTAssertNotNil(viewModel.destinationAddressStatusNoticeLabel) + } + func test_destinationAddressStatus_missing_and_noticeLabel_set_for_empty_address() { // Given let order = Order.fake().copy(shippingAddress: nil) @@ -538,7 +577,7 @@ final class WooShippingCreateLabelsViewModelTests: XCTestCase { } // When - let viewModel = WooShippingCreateLabelsViewModel(order: Order.fake(), stores: stores) + let viewModel = WooShippingCreateLabelsViewModel(order: order, stores: stores) // Then XCTAssertEqual(viewModel.destinationAddressStatus, .missing)