From bfcd954dd326f8a185de69a29dbc1dbbde69a3f4 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 5 Aug 2021 15:51:02 +0300 Subject: [PATCH] [Gradle, JS] Add test on not updating Node.JS if it was downloaded ^KT-47845 fixed --- .../kotlin/gradle/Kotlin2JsGradlePluginIT.kt | 12 ++++++++++ .../testProject/cleanTask/build.gradle | 23 +++++++++++++++++++ .../testProject/cleanTask/settings.gradle | 1 + 3 files changed, 36 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 1083c75bbf3..5b24e500212 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 @@ -978,4 +978,16 @@ class GeneralKotlin2JsGradlePluginIT : BaseGradleIT() { assertNoWarnings() } } + + @Test + fun testNodeJsAndYarnDownload() = with(transformProjectWithPluginsDsl("cleanTask")) { + + build("checkDownloadedFolder") { + assertSuccessful() + } + + build("checkIfLastModifiedNotNow", "--rerun-tasks") { + assertSuccessful() + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cleanTask/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cleanTask/build.gradle index 1fe7cddbc3c..3d4dbe82c39 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cleanTask/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cleanTask/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsPlatform import java.io.File import java.time.* +import java.util.concurrent.* plugins { id "org.jetbrains.kotlin.js" version "" @@ -29,6 +30,28 @@ tasks.create("checkDownloadedFolder") { } } +tasks.create("checkIfLastModifiedNotNow") { + description = "check if last modified is not current date now" + dependsOn "build" + doLast { + println("check downloaded folder existance") + def downloadedFolder = new File(project.gradle.gradleUserHomeDir, nodeJsLocation) + if (!downloadedFolder.exists() || !downloadedFolder.isDirectory()) { + throw new InvalidUserDataException("Downloaded folder was not found") + } + + def now = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() + + def lastModified = downloadedFolder.lastModified() + def lastModified1 = lastModified + TimeUnit.DAYS.toMillis(1); + def lastModified2 = lastModified - TimeUnit.DAYS.toMillis(1); + + if (now < lastModified1 || now < lastModified2) { + throw new InvalidUserDataException("Last modified date was updated") + } + } +} + tasks.create("testCleanTask") { description = "check clean task behaviour" doLast { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cleanTask/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cleanTask/settings.gradle index 5479e2875da..d0627d7c827 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cleanTask/settings.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cleanTask/settings.gradle @@ -2,6 +2,7 @@ pluginManagement { repositories { maven { url '' } gradlePluginPortal() + mavenCentral() } }