Skip to content

Commit

Permalink
[Gradle, JS] Add tests for windows ignore-scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
ilgonmic authored and Space committed Dec 8, 2021
1 parent 9bffcfa commit 73120b9
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 3 deletions.
Expand Up @@ -18,13 +18,19 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
import org.jetbrains.kotlin.gradle.targets.js.npm.fromSrcPackageJson
import org.jetbrains.kotlin.gradle.tasks.USING_JS_INCREMENTAL_COMPILATION_MESSAGE
import org.jetbrains.kotlin.gradle.tasks.USING_JS_IR_BACKEND_MESSAGE
import org.jetbrains.kotlin.gradle.testbase.GradleTest
import org.jetbrains.kotlin.gradle.testbase.assertDirectoryExists
import org.jetbrains.kotlin.gradle.testbase.build
import org.jetbrains.kotlin.gradle.testbase.project
import org.jetbrains.kotlin.gradle.util.*
import org.junit.Assert
import org.junit.Assume.assumeFalse
import org.junit.Test
import org.junit.jupiter.api.DisplayName
import java.io.File
import java.io.FileFilter
import java.util.zip.ZipFile
import kotlin.io.path.notExists
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue
Expand Down Expand Up @@ -1059,4 +1065,46 @@ class GeneralKotlin2JsGradlePluginIT : BaseGradleIT() {
}
}
}

@Test
fun testYarnIgnoreScripts() {
with(transformProjectWithPluginsDsl("nodeJsDownload")) {
gradleBuildScript().modify {
it + "\n" +
"""
dependencies {
implementation(npm("puppeteer", "11.0.0"))
}
""".trimIndent()
}
build("assemble") {
assert(
fileInWorkingDir("build/js/node_modules/puppeteer/.local-chromium")
.exists().not()

) {
"Chromium should not be installed with --ignore-scripts"
}
}
gradleBuildScript().modify {
it + "\n" +
"""
rootProject.plugins.withType<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin> {
rootProject.the<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension>().ignoreScripts = false
}
""".trimIndent()
}

build("clean") {}

build("assemble") {
assert(
fileInWorkingDir("build/js/node_modules/puppeteer/.local-chromium")
.exists()
) {
"Chromium should be installed without --ignore-scripts"
}
}
}
}
}
Expand Up @@ -35,9 +35,13 @@ abstract class YarnBasics : NpmApi {
args: List<String>
) {
services.execWithProgress(description) { exec ->
val arguments = args +
if (logger.isDebugEnabled) "--verbose" else "" +
if (yarn.ignoreScripts) "--ignore-scripts" else ""
val arguments = args
.plus(
if (logger.isDebugEnabled) "--verbose" else ""
)
.plus(
if (yarn.ignoreScripts) "--ignore-scripts" else ""
).filter { it.isNotEmpty() }

val nodeExecutable = nodeJs.requireConfigured().nodeExecutable
if (!yarn.ignoreScripts) {
Expand Down

0 comments on commit 73120b9

Please sign in to comment.