diff options
| author | David Göransson <david.goransson90@gmail.com> | 2024-02-26 16:58:59 +0100 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2024-02-27 09:33:31 +0100 |
| commit | e2368699e0912cc20812d3241f1d01d2c25965de (patch) | |
| tree | 44ca3b1b6c4e640bd0e22d672a5ea4018a34c7ae /android/test | |
| parent | 81ca0ca0ef00e7d6907d2c9a4ce98211f4dd7eff (diff) | |
| download | mullvadvpn-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.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") + } } |
