diff --git a/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt b/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt index 3dc7c280cf..16334b62f2 100644 --- a/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt +++ b/test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt @@ -291,3 +291,14 @@ fun String.normalizeFilePath(): String = fun List<String>.normalizeToTestTargets(): ShardChunks = if (isEmpty()) emptyList() else map { it.split(',', ';') } + +fun getEnv(name: String): String? = System.getenv(name) + +fun List<String>.parseEnvsIfNeeded() = this + .partition { it.startsWith("$") } + .let { (envs, commonTestTargets) -> + commonTestTargets + envs + .mapNotNull { getEnv(it.drop(1)) } + .flatMap { it.split(",") } + .map { it.trim() } + } diff --git a/test_runner/src/main/kotlin/ftl/args/CreateAndroidArgs.kt b/test_runner/src/main/kotlin/ftl/args/CreateAndroidArgs.kt index 3c01444a92..2cbdc5e26b 100644 --- a/test_runner/src/main/kotlin/ftl/args/CreateAndroidArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/CreateAndroidArgs.kt @@ -5,7 +5,6 @@ import ftl.config.android.AndroidFlankConfig import ftl.config.android.AndroidGcloudConfig import ftl.run.common.fromJson import ftl.run.model.AndroidTestShards -import ftl.util.parseEnvsIfNeeded import ftl.util.require import java.nio.file.Paths diff --git a/test_runner/src/main/kotlin/ftl/args/CreateIosArgs.kt b/test_runner/src/main/kotlin/ftl/args/CreateIosArgs.kt index 25321784b8..bad139f68c 100644 --- a/test_runner/src/main/kotlin/ftl/args/CreateIosArgs.kt +++ b/test_runner/src/main/kotlin/ftl/args/CreateIosArgs.kt @@ -4,7 +4,6 @@ import ftl.args.yml.Type import ftl.config.IosConfig import ftl.config.ios.IosFlankConfig import ftl.config.ios.IosGcloudConfig -import ftl.util.parseEnvsIfNeeded import ftl.util.require fun createIosArgs( diff --git a/test_runner/src/main/kotlin/ftl/util/Utils.kt b/test_runner/src/main/kotlin/ftl/util/Utils.kt index a15730a557..41b94f9cbb 100644 --- a/test_runner/src/main/kotlin/ftl/util/Utils.kt +++ b/test_runner/src/main/kotlin/ftl/util/Utils.kt @@ -128,14 +128,3 @@ fun <T> KMutableProperty<T?>.require() = fun getGACPathOrEmpty(): String = System.getenv("GOOGLE_APPLICATION_CREDENTIALS").orEmpty() fun saveToFlankLinks(vararg links: String) = File("flank-links.log").writeText(links.joinToString(System.lineSeparator())) - -fun getEnv(name: String): String? = System.getenv(name) - -fun List<String>.parseEnvsIfNeeded() = this - .partition { it.startsWith("$") } - .let { (envs, commonTestTargets) -> - commonTestTargets + envs - .mapNotNull { getEnv(it.drop(1)) } - .flatMap { it.split(",") } - .map { it.trim() } - } diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt index 73bcff2d07..962ab70926 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt @@ -13,7 +13,6 @@ import ftl.test.util.TestHelper.absolutePath import ftl.test.util.TestHelper.assert import ftl.test.util.TestHelper.getPath import ftl.test.util.TestHelper.getString -import ftl.util.getEnv import io.mockk.every import io.mockk.mockkStatic import kotlinx.coroutines.runBlocking @@ -107,7 +106,7 @@ class AndroidArgsFileTest { @Test fun `should parse test-targets from env`() { - mockkStatic("ftl.util.Utils") + mockkStatic("ftl.args.ArgsHelperKt") every { getEnv("FROM_ENV") } returns "class from.env.Class,notAnnotation from.env.Annotation" val config = AndroidArgs.load(localYamlFile) assertThat(config.testTargets).containsExactly(