KT-61126 Change test expectations
Also improve failure diagnostics in test
This commit is contained in:
committed by
Space Team
parent
785d6858ea
commit
7bdcaff89a
+20
-15
@@ -15,8 +15,8 @@ import org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers.resolveMetadat
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution
|
import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution
|
||||||
import org.jetbrains.kotlin.gradle.util.*
|
import org.jetbrains.kotlin.gradle.util.*
|
||||||
import org.jetbrains.kotlin.util.assertDoesNotThrow
|
import org.jetbrains.kotlin.util.assertDoesNotThrow
|
||||||
import org.jetbrains.kotlin.util.assertThrows
|
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
|
import kotlin.test.fail
|
||||||
|
|
||||||
class StdlibJsExplicitDependencyResolutionTest {
|
class StdlibJsExplicitDependencyResolutionTest {
|
||||||
|
|
||||||
@@ -26,10 +26,10 @@ class StdlibJsExplicitDependencyResolutionTest {
|
|||||||
configurationsThatMustFail = listOf(
|
configurationsThatMustFail = listOf(
|
||||||
// jvm must not resolve, so that stdlib-js doesn't get onto jvm compile classpath
|
// jvm must not resolve, so that stdlib-js doesn't get onto jvm compile classpath
|
||||||
"jvmCompileClasspath",
|
"jvmCompileClasspath",
|
||||||
) + unresolvableMetadataConfigurations,
|
),
|
||||||
configurationsThatMustResolve = listOf(
|
configurationsThatMustResolve = listOf(
|
||||||
"jsCompileClasspath"
|
"jsCompileClasspath"
|
||||||
),
|
) + resolvableMetadataConfigurations,
|
||||||
sourceSetWithStdlibJs = "commonMain"
|
sourceSetWithStdlibJs = "commonMain"
|
||||||
) {
|
) {
|
||||||
jvm()
|
jvm()
|
||||||
@@ -40,11 +40,10 @@ class StdlibJsExplicitDependencyResolutionTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `project with jvm and js targets - with stdlib-js dependency in jsMain - resolves js and jvm compile classpaths`() {
|
fun `project with jvm and js targets - with stdlib-js dependency in jsMain - resolves js and jvm compile classpaths`() {
|
||||||
checkKmpProjectResolvesAllMetadataConfigurationsAnd(
|
checkKmpProjectResolvesAllMetadataConfigurationsAnd(
|
||||||
configurationsThatMustFail = unresolvableMetadataConfigurations,
|
|
||||||
configurationsThatMustResolve = listOf(
|
configurationsThatMustResolve = listOf(
|
||||||
"jsCompileClasspath",
|
"jsCompileClasspath",
|
||||||
"jvmCompileClasspath",
|
"jvmCompileClasspath",
|
||||||
),
|
) + resolvableMetadataConfigurations,
|
||||||
sourceSetWithStdlibJs = "jsMain",
|
sourceSetWithStdlibJs = "jsMain",
|
||||||
) {
|
) {
|
||||||
jvm()
|
jvm()
|
||||||
@@ -55,8 +54,7 @@ class StdlibJsExplicitDependencyResolutionTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `project js target - with stdlib-js dependency in jsMain - resolves js compile classpath`() {
|
fun `project js target - with stdlib-js dependency in jsMain - resolves js compile classpath`() {
|
||||||
checkKmpProjectResolvesAllMetadataConfigurationsAnd(
|
checkKmpProjectResolvesAllMetadataConfigurationsAnd(
|
||||||
configurationsThatMustFail = unresolvableMetadataConfigurations,
|
configurationsThatMustResolve = listOf("jsCompileClasspath") + resolvableMetadataConfigurations,
|
||||||
configurationsThatMustResolve = listOf("jsCompileClasspath"),
|
|
||||||
sourceSetWithStdlibJs = "jsMain",
|
sourceSetWithStdlibJs = "jsMain",
|
||||||
) {
|
) {
|
||||||
js()
|
js()
|
||||||
@@ -66,8 +64,7 @@ class StdlibJsExplicitDependencyResolutionTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `project with js target - with stdlib-js dependency in commonMain - resolves js compile classpath`() {
|
fun `project with js target - with stdlib-js dependency in commonMain - resolves js compile classpath`() {
|
||||||
checkKmpProjectResolvesAllMetadataConfigurationsAnd(
|
checkKmpProjectResolvesAllMetadataConfigurationsAnd(
|
||||||
configurationsThatMustFail = unresolvableMetadataConfigurations,
|
configurationsThatMustResolve = listOf("jsCompileClasspath") + resolvableMetadataConfigurations,
|
||||||
configurationsThatMustResolve = listOf("jsCompileClasspath"),
|
|
||||||
sourceSetWithStdlibJs = "commonMain",
|
sourceSetWithStdlibJs = "commonMain",
|
||||||
) {
|
) {
|
||||||
js()
|
js()
|
||||||
@@ -75,7 +72,7 @@ class StdlibJsExplicitDependencyResolutionTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkKmpProjectResolvesAllMetadataConfigurationsAnd(
|
private fun checkKmpProjectResolvesAllMetadataConfigurationsAnd(
|
||||||
configurationsThatMustFail: List<String>,
|
configurationsThatMustFail: List<String> = emptyList(),
|
||||||
configurationsThatMustResolve: List<String>,
|
configurationsThatMustResolve: List<String>,
|
||||||
sourceSetWithStdlibJs: String,
|
sourceSetWithStdlibJs: String,
|
||||||
configure: KotlinMultiplatformExtension.() -> Unit,
|
configure: KotlinMultiplatformExtension.() -> Unit,
|
||||||
@@ -104,11 +101,19 @@ class StdlibJsExplicitDependencyResolutionTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configurationsThatMustFail.forEach {
|
configurationsThatMustFail.map {
|
||||||
assertThrows<ResolveException> {
|
it to runCatching {
|
||||||
project.configurations.getByName(it).resolve()
|
project.configurations.getByName(it).resolve()
|
||||||
}
|
}.exceptionOrNull()
|
||||||
}
|
}
|
||||||
|
.filterNot { (_, e) -> e is ResolveException }
|
||||||
|
.takeIf { it.isNotEmpty() }
|
||||||
|
?.let { results ->
|
||||||
|
fail(
|
||||||
|
"Expected configurations resolve to fail with ResolveException, but was\n" +
|
||||||
|
results.joinToString("\n") { (name, e) -> " $name: ${e ?: "successful"}" }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
configurationsThatMustResolve.forEach {
|
configurationsThatMustResolve.forEach {
|
||||||
assertDoesNotThrow {
|
assertDoesNotThrow {
|
||||||
@@ -117,8 +122,8 @@ class StdlibJsExplicitDependencyResolutionTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// See KT-61126 for the reason these configurations are unresolvable
|
// These configurations were unresolvable due to KT-61126, but now they are resolvable
|
||||||
private val unresolvableMetadataConfigurations = listOf(
|
private val resolvableMetadataConfigurations = listOf(
|
||||||
"jsMainResolvableDependenciesMetadata",
|
"jsMainResolvableDependenciesMetadata",
|
||||||
"jsTestResolvableDependenciesMetadata",
|
"jsTestResolvableDependenciesMetadata",
|
||||||
"allSourceSetsCompileDependenciesMetadata",
|
"allSourceSetsCompileDependenciesMetadata",
|
||||||
|
|||||||
Reference in New Issue
Block a user