From 6b6ed12df139e4a3c065a61f1433f34f2c5fe5cb Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 16 Jan 2024 12:20:08 +0100 Subject: [PATCH] [Gradle, JS] Add test on source map config ^KT-59523 fixed --- .../kotlin/gradle/Kotlin2JsGradlePluginIT.kt | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index 325e81fd7ac..d82bc973a05 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -1671,4 +1671,43 @@ class Kotlin2JsIrGradlePluginIT : KGPBaseTest() { } } } + + @DisplayName("Check source map config of webpack") + @GradleTest + fun testWebpackSourceMapConfig(gradleVersion: GradleVersion) { + project("kotlin-js-browser-project", gradleVersion) { + build("assemble") { + assertTasksExecuted(":app:browserProductionWebpack") + + val sourceMapConfig = """ + |config.module.rules.push({ + |test: /\.m?js${'$'}/, + |use: ["source-map-loader"], + |enforce: "pre" + |}); + """.trimMargin() + + val webpackConfig = projectPath.resolve("build/js/packages/kotlin-js-browser-app/webpack.config.js") + .readLines() + + var startIndex = 0 + for ((index, line) in webpackConfig.withIndex()) { + if (line.contains("// source maps")) { + startIndex = index + 1 + break + } + } + + val expectedLinesCount = sourceMapConfig.lines().count() + + val actual = webpackConfig.subList(startIndex, startIndex + expectedLinesCount) + .joinToString("\n") { it.trim() } + + assertEquals( + sourceMapConfig, + actual + ) + } + } + } }