[Gradle, JS] Add tests on Separate Dukat integration

This commit is contained in:
Ilya Goncharov
2020-06-25 14:57:22 +03:00
parent 007970ded8
commit 1a9f236a60
9 changed files with 197 additions and 0 deletions
@@ -0,0 +1,85 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.gradle
import org.gradle.api.logging.LogLevel
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProjectModules
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.util.*
import org.junit.Assume.assumeFalse
import org.junit.Test
import java.io.File
import java.util.zip.ZipFile
import kotlin.test.assertEquals
import kotlin.test.assertTrue
class DukatIntegrationIT : BaseGradleIT() {
@Test
fun testSeparateDukatKotlinDslRootDependencies() {
testSeparateDukat(
DslType.KOTLIN,
DependenciesLocation.ROOT
)
}
@Test
fun testSeparateDukatKotlinDslExtDependencies() {
testSeparateDukat(
DslType.KOTLIN,
DependenciesLocation.EXTENSION
)
}
@Test
fun testSeparateDukatGroovyDslRootDependencies() {
testSeparateDukat(
DslType.GROOVY,
DependenciesLocation.ROOT
)
}
@Test
fun testSeparateDukatGroovyDslExtDependencies() {
testSeparateDukat(
DslType.GROOVY,
DependenciesLocation.EXTENSION
)
}
private fun testSeparateDukat(
dslType: DslType,
dependenciesLocation: DependenciesLocation
) {
val project = Project(
projectName = "${dslType.value}-${dependenciesLocation.value}",
directoryPrefix = "dukat-integration"
)
project.setupWorkingDir()
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
project.build("generateExternals") {
assertSuccessful()
}
}
private enum class DslType(
val value: String
) {
KOTLIN("kotlin-dsl"),
GROOVY("groovy-dsl")
}
private enum class DependenciesLocation(
val value: String
) {
ROOT("root"),
EXTENSION("ext")
}
}
@@ -0,0 +1,24 @@
plugins {
id("org.jetbrains.kotlin.js") version "<pluginMarkerVersion>"
}
repositories {
mavenLocal()
jcenter()
}
kotlin {
js {
nodejs()
}
sourceSets {
main {
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-js")
implementation(npm("left-pad", "1.3.0", false))
implementation(npm("decamelize", "4.0.0"))
}
}
}
}
@@ -0,0 +1,6 @@
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
}
}
@@ -0,0 +1,20 @@
plugins {
id("org.jetbrains.kotlin.js") version "<pluginMarkerVersion>"
}
repositories {
mavenLocal()
jcenter()
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-js")
implementation(npm("left-pad", "1.3.0", false))
implementation(npm("decamelize", "4.0.0"))
}
kotlin {
js {
nodejs()
}
}
@@ -0,0 +1,6 @@
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
}
}
@@ -0,0 +1,24 @@
plugins {
kotlin("js") version "<pluginMarkerVersion>"
}
repositories {
mavenLocal()
jcenter()
}
kotlin {
js {
nodejs()
}
sourceSets {
val main by getting {
dependencies {
implementation(kotlin("stdlib-js"))
implementation(npm("left-pad", "1.3.0", false))
implementation(npm("decamelize", "4.0.0"))
}
}
}
}
@@ -0,0 +1,6 @@
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
}
}
@@ -0,0 +1,20 @@
plugins {
kotlin("js") version "<pluginMarkerVersion>"
}
repositories {
mavenLocal()
jcenter()
}
dependencies {
implementation(kotlin("stdlib-js"))
implementation(npm("left-pad", "1.3.0", false))
implementation(npm("decamelize", "4.0.0"))
}
kotlin {
js {
nodejs()
}
}
@@ -0,0 +1,6 @@
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
}
}