From a4152d021b8c9f1d679d991ef937a280dad92454 Mon Sep 17 00:00:00 2001 From: iamgabrielma Date: Wed, 5 Feb 2025 13:01:40 +0100 Subject: [PATCH] Add connection-disconnection events to POS side. add tests --- .../Classes/Analytics/WooAnalyticsStat.swift | 1 + .../POS/Models/PointOfSaleAggregateModel.swift | 2 ++ .../Models/PointOfSaleAggregateModelTests.swift | 16 ++++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/WooCommerce/Classes/Analytics/WooAnalyticsStat.swift b/WooCommerce/Classes/Analytics/WooAnalyticsStat.swift index d035e871a12..a3887f1c667 100644 --- a/WooCommerce/Classes/Analytics/WooAnalyticsStat.swift +++ b/WooCommerce/Classes/Analytics/WooAnalyticsStat.swift @@ -1285,6 +1285,7 @@ enum WooAnalyticsStat: String { case pointOfSaleEmailReceiptSendTapped = "email_receipt_send_tapped" case pointOfSalePaymentsOnboardingShown = "payments_onboarding_shown" case pointOfSalePaymentsOnboardingDismissed = "payments_onboarding_dismissed" + case pointOfSaleCardReaderConnectionTapped = "card_reader_connection_tapped" // MARK: Custom Fields events case productDetailCustomFieldsTapped = "product_detail_custom_fields_tapped" diff --git a/WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift b/WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift index 94c59038eb0..f4a352f4948 100644 --- a/WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift +++ b/WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift @@ -158,12 +158,14 @@ extension PointOfSaleAggregateModel { } func connectCardReader() { + analytics.track(.pointOfSaleCardReaderConnectionTapped) Task { @MainActor in _ = try await cardPresentPaymentService.connectReader(using: .bluetooth) } } func disconnectCardReader() { + analytics.track(.cardReaderDisconnectTapped) Task { @MainActor in await cardPresentPaymentService.disconnectReader() } diff --git a/WooCommerce/WooCommerceTests/POS/Models/PointOfSaleAggregateModelTests.swift b/WooCommerce/WooCommerceTests/POS/Models/PointOfSaleAggregateModelTests.swift index 5d55524c2cf..cc6a5579f05 100644 --- a/WooCommerce/WooCommerceTests/POS/Models/PointOfSaleAggregateModelTests.swift +++ b/WooCommerce/WooCommerceTests/POS/Models/PointOfSaleAggregateModelTests.swift @@ -561,6 +561,22 @@ struct PointOfSaleAggregateModelTests { // Then #expect(analyticsProvider.receivedEvents.first(where: { $0 == "payments_onboarding_shown" }) != nil) } + + @Test func connectCardReader_tracks_event() { + // Given/When + sut.connectCardReader() + + // Then + #expect(analyticsProvider.receivedEvents.first(where: { $0 == "card_reader_connection_tapped" }) != nil) + } + + @Test func disconnectCardReader_tracks_event() { + // Given/When + sut.disconnectCardReader() + + // Then + #expect(analyticsProvider.receivedEvents.first(where: { $0 == "card_reader_disconnect_tapped" }) != nil) + } } }