Skip to content

Commit dc5b47b

Browse files
ilgonmicSpace
authored andcommitted
[Gradle, JS] Add test on valid of webpack config
^KT-48273 fixed
1 parent af32a88 commit dc5b47b

File tree

4 files changed

+110
-0
lines changed

4 files changed

+110
-0
lines changed

libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -965,6 +965,44 @@ abstract class AbstractKotlin2JsGradlePluginIT(val irBackend: Boolean) : BaseGra
965965
.let {
966966
Gson().fromJson(it.readText(), PackageJson::class.java)
967967
}
968+
969+
@Test
970+
fun testWebpackConfig() {
971+
with(Project("kotlin-js-test-webpack-config")) {
972+
setupWorkingDir()
973+
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
974+
975+
build(
976+
"browserDevelopmentWebpack"
977+
) {
978+
assertSuccessful()
979+
}
980+
981+
build(
982+
"checkConfigDevelopmentWebpack",
983+
) {
984+
assertSuccessful()
985+
}
986+
987+
build(
988+
"checkConfigProductionWebpack",
989+
) {
990+
assertSuccessful()
991+
}
992+
993+
build(
994+
"checkConfigDevelopmentRun",
995+
) {
996+
assertSuccessful()
997+
}
998+
999+
build(
1000+
"checkConfigProductionRun",
1001+
) {
1002+
assertSuccessful()
1003+
}
1004+
}
1005+
}
9681006
}
9691007

9701008
class GeneralKotlin2JsGradlePluginIT : BaseGradleIT() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
2+
3+
plugins {
4+
kotlin("js") version "<pluginMarkerVersion>"
5+
}
6+
7+
dependencies {
8+
implementation(kotlin("stdlib-js"))
9+
}
10+
11+
repositories {
12+
mavenLocal()
13+
mavenCentral()
14+
}
15+
16+
kotlin {
17+
js {
18+
val compilation = compilations.getByName("main")
19+
org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec.create(compilation, "checkConfigDevelopmentWebpack") {
20+
inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } })
21+
dependsOn("browserDevelopmentWebpack")
22+
val configFile = tasks.named<org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack>("browserDevelopmentWebpack").map { it.configFile }.get()
23+
configFile.parentFile.listFiles().forEach { println(it)}
24+
args("configtest")
25+
args(configFile.absolutePath)
26+
}
27+
org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec.create(compilation, "checkConfigProductionWebpack") {
28+
inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } })
29+
dependsOn("browserProductionWebpack")
30+
val configFile = tasks.named<org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack>("browserProductionWebpack").map { it.configFile }.get()
31+
args("configtest")
32+
args(configFile.absolutePath)
33+
}
34+
org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec.create(compilation, "checkConfigDevelopmentRun") {
35+
inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } })
36+
dependsOn("browserDevelopmentRun")
37+
val configFile = tasks.named<org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack>("browserDevelopmentRun").map { it.configFile }.get()
38+
args("configtest")
39+
args(configFile.absolutePath)
40+
}
41+
org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec.create(compilation, "checkConfigProductionRun") {
42+
inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } })
43+
dependsOn("browserProductionRun")
44+
val configFile = tasks.named<org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack>("browserProductionRun").map { it.configFile }.get()
45+
args("configtest")
46+
args(configFile.absolutePath)
47+
}
48+
binaries.executable()
49+
browser {
50+
webpackTask {
51+
generateConfigOnly = true
52+
}
53+
runTask {
54+
generateConfigOnly = true
55+
}
56+
}
57+
}
58+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
pluginManagement {
2+
repositories {
3+
mavenLocal()
4+
gradlePluginPortal()
5+
}
6+
}
7+
8+
rootProject.name = "kotlin-js-test-webpack-config"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
fun main() {
3+
console.log("Hello, ${greet()}")
4+
}
5+
6+
fun greet() = "world"

0 commit comments

Comments
 (0)