summaryrefslogtreecommitdiffhomepage
path: root/android/test
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson90@gmail.com>2024-02-26 16:58:59 +0100
committerAlbin <albin@mullvad.net>2024-02-27 09:33:31 +0100
commite2368699e0912cc20812d3241f1d01d2c25965de (patch)
tree44ca3b1b6c4e640bd0e22d672a5ea4018a34c7ae /android/test
parent81ca0ca0ef00e7d6907d2c9a4ce98211f4dd7eff (diff)
downloadmullvadvpn-e2368699e0912cc20812d3241f1d01d2c25965de.tar.xz
mullvadvpn-e2368699e0912cc20812d3241f1d01d2c25965de.zip
Add Konsist test to ensure that tests are named correctly
Diffstat (limited to 'android/test')
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTest.kt35
1 files changed, 35 insertions, 0 deletions
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTest.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTest.kt
index e676b55d7d..6a5b874340 100644
--- a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTest.kt
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTest.kt
@@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.test.arch
import com.lemonappdev.konsist.api.Konsist
import com.lemonappdev.konsist.api.verify.assertEmpty
+import com.lemonappdev.konsist.api.verify.assertTrue
import org.junit.jupiter.api.Test
class JUnitTest {
@@ -27,4 +28,38 @@ class JUnitTest {
}
}
.assertEmpty()
+
+ @Test
+ fun `ensure all non android tests are written with spaces`() =
+ allNonAndroidTests().assertTrue { it.name.contains(' ') }
+
+ @Test
+ fun `ensure all non android tests does start with lower case letter`() =
+ allNonAndroidTests().assertTrue { it.name.first().isLowerCase() }
+
+ @Test
+ fun `ensure all non android tests have 'ensure' or 'should' in function name`() =
+ allNonAndroidTests().assertTrue { it.name.containsEnsureOrShould() }
+
+ private fun String.containsEnsureOrShould(): Boolean {
+ return contains("ensure") || contains("should") || contains("then")
+ }
+
+ private fun allNonAndroidTests() =
+ Konsist.scopeFromTest()
+ .functions()
+ // withAnnotationOf is broken in latest Consist version, so we filter manually
+ // https://github.com/LemonAppDev/konsist/discussions/738
+ .filter { it.annotations.any { it.text == "@Test" } }
+ .filter { it.sourceSetName != "androidTest" }
+ .filter { function ->
+ ignoredTestPackages.none { function.packagee!!.fullyQualifiedName.startsWith(it) }
+ }
+
+ companion object {
+ // The following packages are not following the naming convention since they are android
+ // test that does not support spaces in function names.
+ private val ignoredTestPackages =
+ listOf("net.mullvad.mullvadvpn.test.e2e", "net.mullvad.mullvadvpn.test.mockapi")
+ }
}