Skip to content

Commit 1937ccd

Browse files
committed
Add test cases for CardReaderSettingsConnectedViewModel.connectedReaderModel.
1 parent e6e1977 commit 1937ccd

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

WooCommerce/Classes/ViewRelated/Orders/Collect Payments/CollectOrderPaymentUseCase.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ final class CollectOrderPaymentUseCase: NSObject, CollectOrderPaymentProtocol {
5353
///
5454
private var readerSubscription: AnyCancellable?
5555

56+
/// Stores the connected card reader for analytics.
5657
private var connectedReader: CardReader?
5758

5859
/// Closure to inform when the full flow has been completed, after receipt management.

WooCommerce/WooCommerceTests/Mocks/MockCardReader.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,15 @@ struct MockCardReader {
3333
readerType: .chipper,
3434
locationId: "st_simulated")
3535
}
36+
37+
static func wisePad3() -> CardReader {
38+
CardReader(serial: "WPC323026000412",
39+
vendorIdentifier: "SIMULATOR",
40+
name: "Simulated WISEPAD 3",
41+
status: .init(connected: false, remembered: false),
42+
softwareVersion: nil,
43+
batteryLevel: 0.5,
44+
readerType: .wisepad3,
45+
locationId: nil)
46+
}
3647
}

WooCommerce/WooCommerceTests/ViewRelated/Dashboard/CardReaderSettings/CardReaderSettingsConnectedViewModelTests.swift

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,50 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
410410
// Then
411411
XCTAssertTrue(viewModel.optionalReaderUpdateAvailable)
412412
}
413+
414+
func test_when_connected_to_one_reader_it_sets_connectedReaderModel() {
415+
XCTAssertEqual(viewModel.connectedReaderModel, MockCardReader.bbposChipper2XBT().readerType.model)
416+
}
417+
418+
func test_when_connected_to_two_readers_it_sets_connectedReaderModel_from_the_first_reader() {
419+
// Given
420+
mockStoresManager = MockCardPresentPaymentsStoresManager(
421+
connectedReaders: [MockCardReader.wisePad3(), MockCardReader.bbposChipper2XBT()],
422+
discoveredReaders: [],
423+
sessionManager: SessionManager.testingInstance
424+
)
425+
ServiceLocator.setStores(mockStoresManager)
426+
427+
analyticsProvider = MockAnalyticsProvider()
428+
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analyticsProvider))
429+
430+
viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil,
431+
configuration: Mocks.configuration,
432+
delayToShowUpdateSuccessMessage: .milliseconds(1))
433+
434+
// Then
435+
XCTAssertEqual(viewModel.connectedReaderModel, "WISEPAD_3")
436+
}
437+
438+
func test_when_not_connected_to_any_readers_it_sets_connectedReaderModel_to_nil() {
439+
// Given
440+
mockStoresManager = MockCardPresentPaymentsStoresManager(
441+
connectedReaders: [],
442+
discoveredReaders: [],
443+
sessionManager: SessionManager.testingInstance
444+
)
445+
ServiceLocator.setStores(mockStoresManager)
446+
447+
analyticsProvider = MockAnalyticsProvider()
448+
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analyticsProvider))
449+
450+
viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil,
451+
configuration: Mocks.configuration,
452+
delayToShowUpdateSuccessMessage: .milliseconds(1))
453+
454+
// Then
455+
XCTAssertNil(viewModel.connectedReaderModel)
456+
}
413457
}
414458

415459
private extension CardReaderSettingsConnectedViewModelTests {

0 commit comments

Comments
 (0)