[Gradle, JS] Add test for KT-47045
This commit is contained in:
+31
-9
@@ -21,6 +21,7 @@ import java.io.File
|
|||||||
import java.io.FileFilter
|
import java.io.FileFilter
|
||||||
import java.util.zip.ZipFile
|
import java.util.zip.ZipFile
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
import kotlin.test.assertFalse
|
||||||
import kotlin.test.assertTrue
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) {
|
class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) {
|
||||||
@@ -742,6 +743,27 @@ abstract class AbstractKotlin2JsGradlePluginIT(val irBackend: Boolean) : BaseGra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testNoUnintendedDevDependencies() = with(Project("kotlin-js-browser-project")) {
|
||||||
|
setupWorkingDir()
|
||||||
|
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
||||||
|
gradleSettingsScript().modify(::transformBuildScriptWithPluginsDsl)
|
||||||
|
|
||||||
|
build("browserProductionWebpack") {
|
||||||
|
assertSuccessful()
|
||||||
|
|
||||||
|
val appPackageJson = getSubprojectPackageJson(projectName = "kotlin-js-browser", subProject = "app")
|
||||||
|
val libPackageJson = getSubprojectPackageJson(projectName = "kotlin-js-browser", subProject = "lib")
|
||||||
|
|
||||||
|
assertTrue("${appPackageJson.name} should contain css-loader") {
|
||||||
|
"css-loader" in appPackageJson.devDependencies
|
||||||
|
}
|
||||||
|
assertFalse("${libPackageJson.name} shouldn't contain css-loader") {
|
||||||
|
"css-loader" in libPackageJson.devDependencies
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testUpdatingPackageJsonOnDependenciesClash() = with(Project("kotlin-js-dependencies-clash")) {
|
fun testUpdatingPackageJsonOnDependenciesClash() = with(Project("kotlin-js-dependencies-clash")) {
|
||||||
setupWorkingDir()
|
setupWorkingDir()
|
||||||
@@ -760,15 +782,8 @@ abstract class AbstractKotlin2JsGradlePluginIT(val irBackend: Boolean) : BaseGra
|
|||||||
build("packageJson", "rootPackageJson", "kotlinNpmInstall") {
|
build("packageJson", "rootPackageJson", "kotlinNpmInstall") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
|
|
||||||
fun getPackageJson(subProject: String) =
|
val basePackageJson = getSubprojectPackageJson("base")
|
||||||
fileInWorkingDir("build/js/packages/kotlin-js-dependencies-clash-$subProject")
|
val libPackageJson = getSubprojectPackageJson("lib")
|
||||||
.resolve(NpmProject.PACKAGE_JSON)
|
|
||||||
.let {
|
|
||||||
Gson().fromJson(it.readText(), PackageJson::class.java)
|
|
||||||
}
|
|
||||||
|
|
||||||
val basePackageJson = getPackageJson("base")
|
|
||||||
val libPackageJson = getPackageJson("lib")
|
|
||||||
|
|
||||||
val dependency = "kotlinx-coroutines-core"
|
val dependency = "kotlinx-coroutines-core"
|
||||||
assertFileVersion(basePackageJson, dependency)
|
assertFileVersion(basePackageJson, dependency)
|
||||||
@@ -846,4 +861,11 @@ abstract class AbstractKotlin2JsGradlePluginIT(val irBackend: Boolean) : BaseGra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun CompiledProject.getSubprojectPackageJson(subProject: String, projectName: String? = null) =
|
||||||
|
fileInWorkingDir("build/js/packages/${projectName ?: project.projectName}-$subProject")
|
||||||
|
.resolve(NpmProject.PACKAGE_JSON)
|
||||||
|
.let {
|
||||||
|
Gson().fromJson(it.readText(), PackageJson::class.java)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user