Skip to content

Commit de4a6c6

Browse files
committed
Update tests to match changes to flow
1 parent 2c407f1 commit de4a6c6

File tree

3 files changed

+21
-39
lines changed

3 files changed

+21
-39
lines changed

WooCommerce/WooCommerceTests/Mocks/MockOrderDetailsPaymentAlerts.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ final class MockOrderDetailsPaymentAlerts {
66
// Public closures to mock alert actions and properties for assertions.
77
var cancelReaderIsReadyAlert: (() -> Void)?
88

9+
var cancelPreparingReaderAlert: (() -> Void)?
10+
911
var cancelTapOrInsertCardAlert: (() -> Void)?
1012

1113
var error: Error?
@@ -19,6 +21,10 @@ final class MockOrderDetailsPaymentAlerts {
1921
}
2022

2123
extension MockOrderDetailsPaymentAlerts: OrderDetailsPaymentAlertsProtocol {
24+
func preparingReader(onCancel: @escaping () -> Void) {
25+
cancelPreparingReaderAlert = onCancel
26+
}
27+
2228
func presentViewModel(viewModel: CardPresentPaymentsModalViewModel) {
2329
// no-op
2430
}

WooCommerce/WooCommerceTests/ViewModels/CardPresentPayments/CollectOrderPaymentUseCaseTests.swift

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ final class CollectOrderPaymentUseCaseTests: XCTestCase {
4343
super.tearDown()
4444
}
4545

46-
func test_cancelling_readerIsReady_alert_triggers_onCancel_and_tracks_collectPaymentCanceled_event_and_dispatches_cancel_action() throws {
46+
func test_cancelling_preparingReader_alert_triggers_onCancel_and_tracks_collectPaymentCanceled_event_and_dispatches_cancel_action() throws {
4747
// Given
4848
assertEmpty(stores.receivedActions)
4949

@@ -53,7 +53,7 @@ final class CollectOrderPaymentUseCaseTests: XCTestCase {
5353
self.useCase.collectPayment(onCollect: { _ in }, onCancel: {
5454
promise(())
5555
}, onCompleted: {})
56-
self.alerts.cancelReaderIsReadyAlert?()
56+
self.alerts.cancelPreparingReaderAlert?()
5757
}
5858

5959
// Then
@@ -243,6 +243,17 @@ private extension CollectOrderPaymentUseCaseTests {
243243
completion([MockCardReader.wisePad3()])
244244
} else if case let .cancelPayment(completion) = action {
245245
completion?(.success(()))
246+
} else if case let .collectPayment(_, _, _, onCardReaderMessage, _, _) = action {
247+
onCardReaderMessage(.waitingForInput(""))
248+
}
249+
}
250+
251+
stores.whenReceivingAction(ofType: SystemStatusAction.self) { action in
252+
switch action {
253+
case .synchronizeSystemPlugins(_, let completion):
254+
completion(.success(()))
255+
default:
256+
break
246257
}
247258
}
248259
}

WooCommerce/WooCommerceTests/ViewModels/CardPresentPayments/RefundSubmissionUseCaseTests.swift

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ final class RefundSubmissionUseCaseTests: XCTestCase {
356356
XCTAssertEqual(eventProperties["plugin_slug"] as? String, Mocks.paymentGatewayID)
357357
}
358358

359-
func test_canceling_readerIsReady_alert_tracks_interacRefundCanceled_event_when_payment_method_is_interac() throws {
359+
func test_canceling_preparingReader_alert_tracks_interacRefundCanceled_event_when_payment_method_is_interac() throws {
360360
// Given
361361
let useCase = createUseCase(details: .init(order: .fake().copy(total: "2.28"),
362362
charge: .fake().copy(paymentMethodDetails: .interacPresent(
@@ -376,42 +376,7 @@ final class RefundSubmissionUseCaseTests: XCTestCase {
376376
useCase.submitRefund(.fake(), showInProgressUI: {}, onCompletion: { result in
377377
promise(result)
378378
})
379-
self.alerts.cancelReaderIsReadyAlert?()
380-
}
381-
382-
// Then
383-
XCTAssertTrue(result.isFailure)
384-
XCTAssertEqual(result.failure as? RefundSubmissionUseCase.RefundSubmissionError, .canceledByUser)
385-
386-
let indexOfEvent = try XCTUnwrap(analyticsProvider.receivedEvents.firstIndex(where: { $0 == "interac_refund_cancelled"}))
387-
let eventProperties = try XCTUnwrap(analyticsProvider.receivedProperties[indexOfEvent])
388-
XCTAssertEqual(eventProperties["card_reader_model"] as? String, Mocks.cardReaderModel)
389-
XCTAssertEqual(eventProperties["country"] as? String, "US")
390-
XCTAssertEqual(eventProperties["plugin_slug"] as? String, Mocks.paymentGatewayID)
391-
}
392-
393-
func test_canceling_tapOrInsertCard_alert_tracks_interacRefundCanceled_event_when_payment_method_is_interac() throws {
394-
// Given
395-
let useCase = createUseCase(details: .init(order: .fake().copy(total: "2.28"),
396-
charge: .fake().copy(paymentMethodDetails: .interacPresent(
397-
details: .init(brand: .visa,
398-
last4: "9969",
399-
funding: .credit,
400-
receipt: .init(accountType: .credit,
401-
applicationPreferredName: "Stripe Credit",
402-
dedicatedFileName: "A000000003101001")))),
403-
amount: "2.28",
404-
paymentGatewayAccount: createPaymentGatewayAccount(siteID: Mocks.siteID)))
405-
mockCardPresentPaymentActions(clientSideRefundResult: .failure(RefundSubmissionUseCase.RefundSubmissionError.cardReaderDisconnected),
406-
cancelRefundResult: .success(()),
407-
returnCardReaderMessage: .waitingForInput(""))
408-
409-
// When
410-
let result: Result<Void, Error> = waitFor { promise in
411-
useCase.submitRefund(.fake(), showInProgressUI: {}, onCompletion: { result in
412-
promise(result)
413-
})
414-
self.alerts.cancelTapOrInsertCardAlert?()
379+
self.alerts.cancelPreparingReaderAlert?()
415380
}
416381

417382
// Then

0 commit comments

Comments
 (0)