Skip to content

Commit

Permalink
Unit test for destinationAddressStatus property.
Browse files Browse the repository at this point in the history
  • Loading branch information
selanthiraiyan committed Feb 25, 2025
1 parent b169f7a commit f106e01
Showing 1 changed file with 41 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit f106e01

Please sign in to comment.