diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Orders/Payment Methods/PaymentMethodsViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Orders/Payment Methods/PaymentMethodsViewModelTests.swift index bccc108c069..a2430966297 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Orders/Payment Methods/PaymentMethodsViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Orders/Payment Methods/PaymentMethodsViewModelTests.swift @@ -6,6 +6,7 @@ import WooFoundation @testable import WooCommerce @testable import Yosemite +@testable import Networking private typealias Dependencies = PaymentMethodsViewModel.Dependencies @@ -785,6 +786,58 @@ final class PaymentMethodsViewModelTests: XCTestCase { XCTAssertFalse(viewModel.showTapToPayRow) } + func test_card_rows_are_not_shown_for_ciab_site() { + // Given + let siteID: Int64 = 1212 + let orderID: Int64 = 111 + let ciabSite = Site.fake().copy(siteID: siteID, isGarden: true, gardenName: "commerce") + let order = MockOrders() + .makeOrder(status: .pending) + .copy( + siteID: siteID, + orderID: orderID, + datePaid: .some(nil), + total: "100" + ) + + storage.insertSampleSite(readOnlySite: ciabSite) + storage.insertSampleOrder(readOnlyOrder: order) + + let eligibilityStore = OrderCardPresentPaymentEligibilityStore( + dispatcher: Dispatcher(), + storageManager: storage, + network: MockNetwork(), + currentSite: { ciabSite } + ) + + let configuration = CardPresentPaymentsConfiguration(country: .US) + stores.whenReceivingAction(ofType: OrderCardPresentPaymentEligibilityAction.self) { action in + eligibilityStore.onAction(action) + } + + simulate(tapToPayDeviceAvailability: true, on: stores) + + // When + let dependencies = Dependencies( + stores: stores, + storage: storage, + cardPresentPaymentsConfiguration: configuration + ) + let viewModel = PaymentMethodsViewModel( + siteID: siteID, + orderID: orderID, + total: "5", + formattedTotal: "$5.00", + flow: .simplePayment, + channel: .storeManagement, + dependencies: dependencies + ) + + // Then + XCTAssertFalse(viewModel.showPayWithCardRow) + XCTAssertFalse(viewModel.showTapToPayRow) + } + func test_paymentLinkRow_is_hidden_if_payment_link_is_not_available() { // Given let viewModel = PaymentMethodsViewModel(paymentLink: nil,