Skip to content

Commit 73120b9

Browse files
ilgonmicSpace
authored andcommitted
[Gradle, JS] Add tests for windows ignore-scripts
1 parent 9bffcfa commit 73120b9

File tree

2 files changed

+55
-3
lines changed
  • libraries/tools
    • kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle
    • kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn

2 files changed

+55
-3
lines changed

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

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,19 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
1818
import org.jetbrains.kotlin.gradle.targets.js.npm.fromSrcPackageJson
1919
import org.jetbrains.kotlin.gradle.tasks.USING_JS_INCREMENTAL_COMPILATION_MESSAGE
2020
import org.jetbrains.kotlin.gradle.tasks.USING_JS_IR_BACKEND_MESSAGE
21+
import org.jetbrains.kotlin.gradle.testbase.GradleTest
22+
import org.jetbrains.kotlin.gradle.testbase.assertDirectoryExists
23+
import org.jetbrains.kotlin.gradle.testbase.build
24+
import org.jetbrains.kotlin.gradle.testbase.project
2125
import org.jetbrains.kotlin.gradle.util.*
2226
import org.junit.Assert
2327
import org.junit.Assume.assumeFalse
2428
import org.junit.Test
29+
import org.junit.jupiter.api.DisplayName
2530
import java.io.File
2631
import java.io.FileFilter
2732
import java.util.zip.ZipFile
33+
import kotlin.io.path.notExists
2834
import kotlin.test.assertEquals
2935
import kotlin.test.assertFalse
3036
import kotlin.test.assertTrue
@@ -1059,4 +1065,46 @@ class GeneralKotlin2JsGradlePluginIT : BaseGradleIT() {
10591065
}
10601066
}
10611067
}
1068+
1069+
@Test
1070+
fun testYarnIgnoreScripts() {
1071+
with(transformProjectWithPluginsDsl("nodeJsDownload")) {
1072+
gradleBuildScript().modify {
1073+
it + "\n" +
1074+
"""
1075+
dependencies {
1076+
implementation(npm("puppeteer", "11.0.0"))
1077+
}
1078+
""".trimIndent()
1079+
}
1080+
build("assemble") {
1081+
assert(
1082+
fileInWorkingDir("build/js/node_modules/puppeteer/.local-chromium")
1083+
.exists().not()
1084+
1085+
) {
1086+
"Chromium should not be installed with --ignore-scripts"
1087+
}
1088+
}
1089+
gradleBuildScript().modify {
1090+
it + "\n" +
1091+
"""
1092+
rootProject.plugins.withType<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin> {
1093+
rootProject.the<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension>().ignoreScripts = false
1094+
}
1095+
""".trimIndent()
1096+
}
1097+
1098+
build("clean") {}
1099+
1100+
build("assemble") {
1101+
assert(
1102+
fileInWorkingDir("build/js/node_modules/puppeteer/.local-chromium")
1103+
.exists()
1104+
) {
1105+
"Chromium should be installed without --ignore-scripts"
1106+
}
1107+
}
1108+
}
1109+
}
10621110
}

libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,13 @@ abstract class YarnBasics : NpmApi {
3535
args: List<String>
3636
) {
3737
services.execWithProgress(description) { exec ->
38-
val arguments = args +
39-
if (logger.isDebugEnabled) "--verbose" else "" +
40-
if (yarn.ignoreScripts) "--ignore-scripts" else ""
38+
val arguments = args
39+
.plus(
40+
if (logger.isDebugEnabled) "--verbose" else ""
41+
)
42+
.plus(
43+
if (yarn.ignoreScripts) "--ignore-scripts" else ""
44+
).filter { it.isNotEmpty() }
4145

4246
val nodeExecutable = nodeJs.requireConfigured().nodeExecutable
4347
if (!yarn.ignoreScripts) {

0 commit comments

Comments
 (0)