From f8fefae3b81f6889f4063166a3a34c0737fda5c6 Mon Sep 17 00:00:00 2001 From: Brian Yencho Date: Mon, 4 Dec 2023 18:40:37 -0600 Subject: [PATCH] Add OmitFromCoverage annotation to exclude special cases (#318) --- app/build.gradle.kts | 4 +++- .../bitwarden/data/auth/util/KdfParamsConstants.kt | 2 ++ .../data/platform/annotation/OmitFromCoverage.kt | 13 +++++++++++++ .../data/platform/util/DeviceModelProvider.kt | 4 +++- 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/x8bit/bitwarden/data/platform/annotation/OmitFromCoverage.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3bd98da9b8..011e66100f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -144,7 +144,9 @@ koverReport { excludes { annotatedBy( // Compose previews - "androidx.compose.ui.tooling.preview.Preview" + "androidx.compose.ui.tooling.preview.Preview", + // Manually excluded classes/files/etc. + "com.x8bit.bitwarden.data.platform.annotation.OmitFromCoverage" ) classes( // Navigation helpers diff --git a/app/src/main/java/com/x8bit/bitwarden/data/auth/util/KdfParamsConstants.kt b/app/src/main/java/com/x8bit/bitwarden/data/auth/util/KdfParamsConstants.kt index 6fa9f2224c..44e5eb9907 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/auth/util/KdfParamsConstants.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/auth/util/KdfParamsConstants.kt @@ -1,10 +1,12 @@ package com.x8bit.bitwarden.data.auth.util import com.bitwarden.core.Kdf +import com.x8bit.bitwarden.data.platform.annotation.OmitFromCoverage /** * Constants relating to [Kdf] initialization defaults. */ +@OmitFromCoverage object KdfParamsConstants { /** diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/annotation/OmitFromCoverage.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/annotation/OmitFromCoverage.kt new file mode 100644 index 0000000000..df7de9cc5a --- /dev/null +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/annotation/OmitFromCoverage.kt @@ -0,0 +1,13 @@ +package com.x8bit.bitwarden.data.platform.annotation + +/** + * Used to omit the annotated class from test coverage reporting. This should be used sparingly and + * is intended for non-testable classes that are placed in packages along with testable ones. + */ +@Target( + AnnotationTarget.CLASS, + AnnotationTarget.FILE, + AnnotationTarget.FUNCTION, +) +@Retention(AnnotationRetention.BINARY) +annotation class OmitFromCoverage diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/util/DeviceModelProvider.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/util/DeviceModelProvider.kt index c594af2f25..a8f3b79774 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/util/DeviceModelProvider.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/util/DeviceModelProvider.kt @@ -1,10 +1,12 @@ package com.x8bit.bitwarden.data.platform.util import android.os.Build +import com.x8bit.bitwarden.data.platform.annotation.OmitFromCoverage /** - * Provides device model string. Useful for mocking static [Build.model] call tests. + * Provides device model string. Useful for mocking static [Build.MODEL] call tests. */ +@OmitFromCoverage class DeviceModelProvider { /**