summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson90@gmail.com>2023-10-02 15:38:58 +0200
committerDavid Göransson <david.goransson90@gmail.com>2023-10-02 16:06:03 +0200
commit3f6a24dc2cf5437d90754fe086c9e3ba40e4f53d (patch)
tree13ca47f969ae5cae07dcee087850e926c960d2db /android
parent23517aa5dda6ba8360a6fa9ce408aa63ae5751ce (diff)
downloadmullvadvpn-3f6a24dc2cf5437d90754fe086c9e3ba40e4f53d.tar.xz
mullvadvpn-3f6a24dc2cf5437d90754fe086c9e3ba40e4f53d.zip
Align test syntax
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt5
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt2
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ArchitectureTests.kt7
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/GeneralTests.kt9
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt9
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/ClassTests.kt7
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/DataClassTests.kt7
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt8
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposeTests.kt3
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/extensions/KonsistExtensions.kt5
13 files changed, 27 insertions, 43 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt
index 4099e52480..a03de806b4 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt
@@ -38,7 +38,7 @@ class AccountViewModel(
}
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(), AccountUiState.default())
- @Suppress("konsist.ensurePublicPropertiesUsePermittedNames")
+ @Suppress("konsist.ensure public properties use permitted names")
val enterTransitionEndAction = _enterTransitionEndAction.asSharedFlow()
fun onManageAccountClick() {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt
index c554bd4daa..98648e0015 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt
@@ -37,10 +37,11 @@ class DeviceListViewModel(
private val _loadingDevices = MutableStateFlow<List<DeviceId>>(emptyList())
private val _toastMessages = MutableSharedFlow<String>(extraBufferCapacity = 1)
- @Suppress("konsist.ensurePublicPropertiesUsePermittedNames")
+ @Suppress("konsist.ensure public properties use permitted names")
val toastMessages = _toastMessages.asSharedFlow()
- @Suppress("konsist.ensurePublicPropertiesUsePermittedNames") var accountToken: String? = null
+ @Suppress("konsist.ensure public properties use permitted names")
+ var accountToken: String? = null
private var cachedDeviceList: List<Device>? = null
val uiState =
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
index 2ae361c964..2507e9fb19 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
@@ -66,9 +66,9 @@ class SelectLocationViewModel(private val serviceConnectionManager: ServiceConne
SelectLocationUiState.Loading
)
- @Suppress("konsist.ensurePublicPropertiesUsePermittedNames")
+ @Suppress("konsist.ensure public properties use permitted names")
val uiCloseAction = _closeAction.asSharedFlow()
- @Suppress("konsist.ensurePublicPropertiesUsePermittedNames")
+ @Suppress("konsist.ensure public properties use permitted names")
val enterTransitionEndAction = _enterTransitionEndAction.asSharedFlow()
fun selectRelay(relayItem: RelayItem?) {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt
index 89adbe20be..fb357dfe2a 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt
@@ -45,7 +45,7 @@ class SettingsViewModel(
SettingsUiState(appVersion = "", isLoggedIn = false, isUpdateAvailable = false)
)
- @Suppress("konsist.ensurePublicPropertiesUsePermittedNames")
+ @Suppress("konsist.ensure public properties use permitted names")
val enterTransitionEndAction = _enterTransitionEndAction.asSharedFlow()
fun onTransitionAnimationEnd() {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt
index 2c8e30f2b4..9c25fe824f 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt
@@ -51,7 +51,7 @@ class VpnSettingsViewModel(
) : ViewModel() {
private val _toastMessages = MutableSharedFlow<String>(extraBufferCapacity = 1)
- @Suppress("konsist.ensurePublicPropertiesUsePermittedNames")
+ @Suppress("konsist.ensure public properties use permitted names")
val toastMessages = _toastMessages.asSharedFlow()
private val dialogState =
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ArchitectureTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ArchitectureTests.kt
index ecb2fa18bb..2a7e1e205e 100644
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ArchitectureTests.kt
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ArchitectureTests.kt
@@ -8,11 +8,10 @@ import org.junit.Test
class ArchitectureTests {
@Test
- fun `domain layer depends on nothing`() {
+ fun `ensure model layer depends on nothing`() =
Konsist.scopeFromProduction().assertArchitecture {
- val domain = Layer("Domain", "net.mullvad.mullvadvpn.model..")
+ val model = Layer("Model", "net.mullvad.mullvadvpn.model..")
- domain.dependsOnNothing()
+ model.dependsOnNothing()
}
- }
}
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/GeneralTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/GeneralTests.kt
index a40f93c5f5..60842537c3 100644
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/GeneralTests.kt
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/GeneralTests.kt
@@ -8,20 +8,17 @@ import org.junit.Test
class GeneralTests {
@Test
- fun `package name must match file path`() {
+ fun `ensure package name must match file path`() =
Konsist.scopeFromProject().packages.assert { it.hasMatchingPath }
- }
@Test
- fun `no field should have 'm' prefix`() {
+ fun `ensure no field should have 'm' prefix`() =
Konsist.scopeFromProject().classes().properties().assertNot {
val secondCharacterIsUppercase = it.name.getOrNull(1)?.isUpperCase() ?: false
it.name.startsWith('m') && secondCharacterIsUppercase
}
- }
@Test
- fun `no empty files allowed`() {
+ fun `ensure no empty files allowed`() =
Konsist.scopeFromProject().files.assertNot { it.text.isEmpty() }
- }
}
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt
index 8347c799d7..a474ec3eb6 100644
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt
@@ -12,26 +12,23 @@ import org.junit.Test
class ViewModelTests {
@Test
- fun ensureViewModelsHaveViewModelSuffix() {
+ fun ensureViewModelsHaveViewModelSuffix() =
allViewModels().assert { it.name.endsWith("ViewModel") }
- }
// The purpose of this check is to both keep the naming consistent and also to avoid exposing
// properties that shouldn't be exposed.
@Test
- fun ensurePublicPropertiesUsePermittedNames() {
+ fun `ensure public properties use permitted names`() =
allViewModels().properties(includeNested = false).withPublicOrDefaultModifier().assert {
property ->
property.name == "uiState" || property.name == "uiSideEffect"
}
- }
@Test
- fun ensurePublicFunctionsHaveNoReturnType() {
+ fun `ensure public functions have no return type`() =
allViewModels().functions().withPublicOrDefaultModifier().assertNot { function ->
function.hasReturnType()
}
- }
private fun allViewModels() =
Konsist.scopeFromProject().classes().withAllParentsOf(ViewModel::class)
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/ClassTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/ClassTests.kt
index cc737250f6..918139bf24 100644
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/ClassTests.kt
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/ClassTests.kt
@@ -1,13 +1,13 @@
package net.mullvad.mullvadvpn.test.arch.classes
+import com.lemonappdev.konsist.api.Konsist
import com.lemonappdev.konsist.api.verify.assert
-import net.mullvad.mullvadvpn.test.arch.extensions.projectScope
import org.junit.Test
class ClassTests {
@Test
- fun `companion object is last declaration in the class`() {
- projectScope().classes(includeNested = true).assert {
+ fun `ensure companion object is last declaration in the class`() =
+ Konsist.scopeFromProject().classes(includeNested = true).assert {
val companionObject =
it.objects(includeNested = false).lastOrNull { obj -> obj.hasCompanionModifier }
if (companionObject != null) {
@@ -17,5 +17,4 @@ class ClassTests {
true
}
}
- }
}
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/DataClassTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/DataClassTests.kt
index 3fd5eff979..cc2f7262b1 100644
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/DataClassTests.kt
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/classes/DataClassTests.kt
@@ -1,18 +1,17 @@
package net.mullvad.mullvadvpn.test.arch.classes
+import com.lemonappdev.konsist.api.Konsist
import com.lemonappdev.konsist.api.ext.list.modifierprovider.withDataModifier
import com.lemonappdev.konsist.api.ext.list.properties
import com.lemonappdev.konsist.api.verify.assertNot
-import net.mullvad.mullvadvpn.test.arch.extensions.projectScope
import org.junit.Test
class DataClasses {
@Test
- fun `data classes use only immutable declarations`() {
- projectScope()
+ fun `ensure data classes only use immutable properties`() =
+ Konsist.scopeFromProject()
.classes(includeNested = true)
.withDataModifier()
.properties(includeNested = false, includeLocal = false)
.assertNot { it.hasVarModifier }
- }
}
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt
index 64b221d0c0..5f8b1fef80 100644
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt
@@ -8,15 +8,13 @@ import org.junit.Test
class ComposePreviewTests {
@Test
- fun `all preview functions are private`() {
+ fun `ensure all preview functions are private`() =
allPreviewFunctions().assert { it.hasPrivateModifier }
- }
@Test
- fun `all preview functions are prefixed with Preview`() {
+ fun `ensure all preview functions are prefixed with 'Preview'`() =
allPreviewFunctions().assert { it.name.startsWith("Preview") }
- }
private fun allPreviewFunctions() =
- Konsist.scopeFromProduction().functions().withAllAnnotationsOf(Preview::class)
+ Konsist.scopeFromProduction("app").functions().withAllAnnotationsOf(Preview::class)
}
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposeTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposeTests.kt
index 970174d269..025f10d11f 100644
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposeTests.kt
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposeTests.kt
@@ -8,9 +8,8 @@ import org.junit.Test
class ComposeTests {
@Test
- fun `all app composables are in the compose packages`() {
+ fun `ensure all app composables are in the compose package`() =
allAppComposeFunctions().assert { it.resideInPackage("net.mullvad.mullvadvpn.compose..") }
- }
private fun allAppComposeFunctions() =
Konsist.scopeFromProduction("app").functions().withAllAnnotationsOf(Composable::class)
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/extensions/KonsistExtensions.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/extensions/KonsistExtensions.kt
deleted file mode 100644
index b228575b46..0000000000
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/extensions/KonsistExtensions.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package net.mullvad.mullvadvpn.test.arch.extensions
-
-import com.lemonappdev.konsist.api.Konsist
-
-fun projectScope() = Konsist.scopeFromProject()