[Gradle, JS] Add test with webpack + es modules

This commit is contained in:
Ilya Goncharov
2023-04-26 18:47:58 +02:00
committed by teamcity
parent 5b47b1ac24
commit a3d45964f3
2 changed files with 44 additions and 1 deletions
@@ -174,7 +174,7 @@ class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) {
assertEquals(
setOf(
projectPath.resolve("build/js/packages/kotlin-js-browser-app/kotlin/kotlin-js-browser-base-js-ir.js").toFile(),
projectPath.resolve("build/js/packages/kotlin-js-browser-app/kotlin/kotlin-js-browser-base-js-ir.mjs").toFile(),
projectPath.resolve("build/js/packages/kotlin-js-browser-app/kotlin/foo/foo.txt").toFile(),
),
modified.toSet()
@@ -487,6 +487,42 @@ class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) {
}
}
@DisplayName("Webpack works with ES modules")
@GradleTest
fun testWebpackWorksWithEsModules(gradleVersion: GradleVersion) {
project("kotlin-js-browser-project", gradleVersion) {
buildGradleKts.modify(::transformBuildScriptWithPluginsDsl)
subProject("app").buildGradleKts.modify { originalScript ->
buildString {
append(originalScript)
append(
"""
|
|tasks.named<org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink>("compileDevelopmentExecutableKotlinJs") {
| kotlinOptions {
| moduleKind = "es"
| }
|}
|
|tasks.named<org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink>("compileProductionExecutableKotlinJs") {
| kotlinOptions {
| moduleKind = "es"
| }
|}
|
""".trimMargin()
)
}
}
build("browserProductionWebpack") {
assertTasksExecuted(":app:browserProductionWebpack")
assertFileExists(subProject("app").projectPath.resolve("build/${Distribution.DIST}/js/productionExecutable/app.js"))
}
}
}
@DisplayName("Multiple targets works without clash")
@GradleTest
fun testMultipleJsTargets(gradleVersion: GradleVersion) {
@@ -1,4 +1,5 @@
import org.jetbrains.kotlin.gradle.targets.js.NpmVersions
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink
import javax.inject.Inject
plugins {
@@ -76,3 +77,9 @@ tasks.named<org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile>("compileKotlinJs")
tasks.named<org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile>("compileTestKotlinJs") {
kotlinOptions.freeCompilerArgs += "-Xforce-deprecated-legacy-compiler-usage"
}
tasks.withType<org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink>().configureEach {
kotlinOptions {
moduleKind = "es"
}
}