[Gradle, JS] Add test on valid of webpack config
^KT-48273 fixed
This commit is contained in:
committed by
TeamCityServer
parent
301f446433
commit
f37d880964
+38
@@ -965,6 +965,44 @@ abstract class AbstractKotlin2JsGradlePluginIT(val irBackend: Boolean) : BaseGra
|
||||
.let {
|
||||
Gson().fromJson(it.readText(), PackageJson::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testWebpackConfig() {
|
||||
with(Project("kotlin-js-test-webpack-config")) {
|
||||
setupWorkingDir()
|
||||
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
||||
|
||||
build(
|
||||
"browserDevelopmentWebpack"
|
||||
) {
|
||||
assertSuccessful()
|
||||
}
|
||||
|
||||
build(
|
||||
"checkConfigDevelopmentWebpack",
|
||||
) {
|
||||
assertSuccessful()
|
||||
}
|
||||
|
||||
build(
|
||||
"checkConfigProductionWebpack",
|
||||
) {
|
||||
assertSuccessful()
|
||||
}
|
||||
|
||||
build(
|
||||
"checkConfigDevelopmentRun",
|
||||
) {
|
||||
assertSuccessful()
|
||||
}
|
||||
|
||||
build(
|
||||
"checkConfigProductionRun",
|
||||
) {
|
||||
assertSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class GeneralKotlin2JsGradlePluginIT : BaseGradleIT() {
|
||||
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
||||
|
||||
plugins {
|
||||
kotlin("js") version "<pluginMarkerVersion>"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(kotlin("stdlib-js"))
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
kotlin {
|
||||
js {
|
||||
val compilation = compilations.getByName("main")
|
||||
org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec.create(compilation, "checkConfigDevelopmentWebpack") {
|
||||
inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } })
|
||||
dependsOn("browserDevelopmentWebpack")
|
||||
val configFile = tasks.named<org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack>("browserDevelopmentWebpack").map { it.configFile }.get()
|
||||
configFile.parentFile.listFiles().forEach { println(it)}
|
||||
args("configtest")
|
||||
args(configFile.absolutePath)
|
||||
}
|
||||
org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec.create(compilation, "checkConfigProductionWebpack") {
|
||||
inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } })
|
||||
dependsOn("browserProductionWebpack")
|
||||
val configFile = tasks.named<org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack>("browserProductionWebpack").map { it.configFile }.get()
|
||||
args("configtest")
|
||||
args(configFile.absolutePath)
|
||||
}
|
||||
org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec.create(compilation, "checkConfigDevelopmentRun") {
|
||||
inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } })
|
||||
dependsOn("browserDevelopmentRun")
|
||||
val configFile = tasks.named<org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack>("browserDevelopmentRun").map { it.configFile }.get()
|
||||
args("configtest")
|
||||
args(configFile.absolutePath)
|
||||
}
|
||||
org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec.create(compilation, "checkConfigProductionRun") {
|
||||
inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } })
|
||||
dependsOn("browserProductionRun")
|
||||
val configFile = tasks.named<org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack>("browserProductionRun").map { it.configFile }.get()
|
||||
args("configtest")
|
||||
args(configFile.absolutePath)
|
||||
}
|
||||
binaries.executable()
|
||||
browser {
|
||||
webpackTask {
|
||||
generateConfigOnly = true
|
||||
}
|
||||
runTask {
|
||||
generateConfigOnly = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "kotlin-js-test-webpack-config"
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
|
||||
fun main() {
|
||||
console.log("Hello, ${greet()}")
|
||||
}
|
||||
|
||||
fun greet() = "world"
|
||||
Reference in New Issue
Block a user