From 514f4d05415fad02543005ad98d34838652925b6 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 24 Oct 2025 09:07:32 +0200 Subject: [PATCH] Add missing test on NoopAnalyticsService --- services/analytics/noop/build.gradle.kts | 2 + .../noop/NoopAnalyticsServiceTest.kt | 67 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 services/analytics/noop/src/test/kotlin/io/element/android/services/analytics/noop/NoopAnalyticsServiceTest.kt diff --git a/services/analytics/noop/build.gradle.kts b/services/analytics/noop/build.gradle.kts index cd6d16d029..81f969ac2a 100644 --- a/services/analytics/noop/build.gradle.kts +++ b/services/analytics/noop/build.gradle.kts @@ -1,4 +1,5 @@ import extension.setupDependencyInjection +import extension.testCommonDependencies /* * Copyright 2023, 2024 New Vector Ltd. @@ -20,4 +21,5 @@ dependencies { implementation(projects.libraries.architecture) implementation(projects.libraries.di) api(projects.services.analytics.api) + testCommonDependencies(libs) } diff --git a/services/analytics/noop/src/test/kotlin/io/element/android/services/analytics/noop/NoopAnalyticsServiceTest.kt b/services/analytics/noop/src/test/kotlin/io/element/android/services/analytics/noop/NoopAnalyticsServiceTest.kt new file mode 100644 index 0000000000..d5bc10073a --- /dev/null +++ b/services/analytics/noop/src/test/kotlin/io/element/android/services/analytics/noop/NoopAnalyticsServiceTest.kt @@ -0,0 +1,67 @@ +/* + * Copyright 2025 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial + * Please see LICENSE files in the repository root for full details. + */ + +package io.element.android.services.analytics.noop + +import app.cash.turbine.test +import com.google.common.truth.Truth.assertThat +import im.vector.app.features.analytics.plan.CallStarted +import im.vector.app.features.analytics.plan.MobileScreen +import im.vector.app.features.analytics.plan.SuperProperties +import im.vector.app.features.analytics.plan.UserProperties +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class NoopAnalyticsServiceTest { + @Test + fun `getAvailableAnalyticsProviders returns emptySet`() { + val sut = NoopAnalyticsService() + assertThat(sut.getAvailableAnalyticsProviders()).isEmpty() + } + + @Test + fun `didAskUserConsentFlow emits only true`() = runTest { + val sut = NoopAnalyticsService() + sut.didAskUserConsentFlow.test { + assertThat(awaitItem()).isTrue() + awaitComplete() + } + } + + @Test + fun `analyticsIdFlow emits only empty string`() = runTest { + val sut = NoopAnalyticsService() + sut.analyticsIdFlow.test { + assertThat(awaitItem()).isEmpty() + sut.setAnalyticsId("anId") + awaitComplete() + } + } + + @Test + fun `userConsentFlow emits only false`() = runTest { + val sut = NoopAnalyticsService() + sut.userConsentFlow.test { + assertThat(awaitItem()).isFalse() + awaitComplete() + } + } + + @Test + fun `test no op methods`() = runTest { + val sut = NoopAnalyticsService() + sut.setUserConsent(false) + sut.setUserConsent(true) + sut.setDidAskUserConsent() + sut.setAnalyticsId("anId") + sut.capture(CallStarted(true, 1, true)) + sut.screen(MobileScreen(screenName = MobileScreen.ScreenName.RoomMembers)) + sut.updateUserProperties(UserProperties()) + sut.trackError(Exception("an_error")) + sut.updateSuperProperties(SuperProperties()) + } +}