diff options
Diffstat (limited to 'android')
| -rw-r--r-- | android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTest.kt | 35 |
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") + } } |
