[Gradle, JS] Add yarn resolution gradle integration test

^KT-41054 fixed
This commit is contained in:
Ilya Goncharov
2020-08-07 18:13:55 +03:00
parent 9df604cb3d
commit 58284c8b08
3 changed files with 70 additions and 0 deletions
@@ -748,4 +748,34 @@ abstract class AbstractKotlin2JsGradlePluginIT(private val irBackend: Boolean) :
assertFileVersion(libPackageJson, dependency)
}
}
@Test
fun testYarnResolution() = with(Project("kotlin-js-yarn-resolutions")) {
setupWorkingDir()
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
fun assertYarnResolutions(
packageJson: PackageJson
) {
val name = "lodash"
val version = packageJson.resolutions?.get(name)
val requiredVersion = ">=1.0.0 <1.2.1 || >1.4.0 <2.0.0"
assertTrue("Root package.json must have resolution $name with version $requiredVersion, but $version found") {
version == requiredVersion
}
}
build("packageJson", "rootPackageJson", "kotlinNpmInstall") {
assertSuccessful()
fun getPackageJson() =
fileInWorkingDir("build/js")
.resolve(NpmProject.PACKAGE_JSON)
.let {
Gson().fromJson(it.readText(), PackageJson::class.java)
}
assertYarnResolutions(getPackageJson())
}
}
}
@@ -0,0 +1,29 @@
plugins {
kotlin("js").version("<pluginMarkerVersion>")
}
group = "com.example"
version = "1.0"
repositories {
mavenLocal()
jcenter()
}
dependencies {
constraints {
implementation(org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependencyConstraint(project, "lodash", "^1.0.0")) {
version {
reject("~1.2.1", "1.3.0 - 1.4.0")
}
}
}
}
kotlin {
js {
useCommonJs()
nodejs {
}
}
}
@@ -0,0 +1,11 @@
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
}
}
rootProject.name = "kotlin-js-dependencies-clash"
include("base")
include("lib")