Migrate KotlinJsLibraryGradlePluginIT tests to new dsl
^KT-45745 In Progress
This commit is contained in:
+47
-60
@@ -5,86 +5,73 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle
|
package org.jetbrains.kotlin.gradle
|
||||||
|
|
||||||
import org.gradle.api.logging.LogLevel
|
import org.gradle.util.GradleVersion
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
|
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
|
||||||
import org.jetbrains.kotlin.gradle.util.modify
|
import org.jetbrains.kotlin.gradle.testbase.*
|
||||||
import org.junit.Test
|
import org.junit.jupiter.api.DisplayName
|
||||||
import java.util.zip.ZipFile
|
import java.util.zip.ZipFile
|
||||||
import kotlin.test.assertNotNull
|
import kotlin.test.assertNotNull
|
||||||
|
|
||||||
class KotlinJsIrLibraryGradlePluginIT : BaseGradleIT() {
|
// TODO: This suite is failing with deprecation error on Gradle <7.0 versions
|
||||||
// TODO: This suite is failing with deprecation error on Gradle <7.0 versions
|
// Should be fixed via planned fixes in Kotlin/JS plugin: https://youtrack.jetbrains.com/issue/KFC-252
|
||||||
// Should be fixed via planned fixes in Kotlin/JS plugin: https://youtrack.jetbrains.com/issue/KFC-252
|
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0)
|
||||||
override val defaultGradleVersion: GradleVersionRequired
|
@DisplayName("Kotlin/JS IR library")
|
||||||
get() = GradleVersionRequired.AtLeast("7.0")
|
@JsGradlePluginTests
|
||||||
|
class KotlinJsIrLibraryGradlePluginIT : KGPBaseTest() {
|
||||||
|
|
||||||
override fun defaultBuildOptions(): BuildOptions =
|
override val defaultBuildOptions = super.defaultBuildOptions.copy(
|
||||||
super.defaultBuildOptions().copy(
|
jsOptions = BuildOptions.JsOptions(
|
||||||
jsIrBackend = true,
|
useIrBackend = true,
|
||||||
jsCompilerType = KotlinJsCompilerType.IR
|
jsCompilerType = KotlinJsCompilerType.IR
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
|
||||||
@Test
|
@DisplayName("simple binary library")
|
||||||
fun testSimpleJsBinaryLibrary() {
|
@GradleTest
|
||||||
val project = Project("simple-js-library")
|
fun testSimpleJsBinaryLibrary(gradleVersion: GradleVersion) {
|
||||||
|
project("simple-js-library", gradleVersion) {
|
||||||
project.setupWorkingDir()
|
build("build") {
|
||||||
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
assertFileInProjectExists("build/productionLibrary/js-library.js")
|
||||||
project.build("build") {
|
assertFileInProjectExists("build/productionLibrary/package.json")
|
||||||
assertSuccessful()
|
assertFileInProjectExists("build/productionLibrary/main.js")
|
||||||
|
}
|
||||||
assertFileExists("build/productionLibrary/js-library.js")
|
|
||||||
assertFileExists("build/productionLibrary/package.json")
|
|
||||||
assertFileExists("build/productionLibrary/main.js")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@DisplayName("binary library and executable")
|
||||||
fun testJsBinaryLibraryAndExecutable() {
|
@GradleTest
|
||||||
val project = Project("js-library-with-executable")
|
fun testJsBinaryLibraryAndExecutable(gradleVersion: GradleVersion) {
|
||||||
|
project("js-library-with-executable", gradleVersion) {
|
||||||
project.setupWorkingDir()
|
build("build") {
|
||||||
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
assertFileInProjectExists("build/productionLibrary/js-library.js")
|
||||||
project.build("build") {
|
assertFileInProjectExists("build/productionLibrary/package.json")
|
||||||
assertSuccessful()
|
assertFileInProjectExists("build/productionLibrary/main.js")
|
||||||
|
}
|
||||||
assertFileExists("build/productionLibrary/js-library.js")
|
|
||||||
assertFileExists("build/productionLibrary/package.json")
|
|
||||||
assertFileExists("build/productionLibrary/main.js")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@DisplayName("binary library and executable both for browser and nodejs")
|
||||||
fun testJsBinaryLibraryAndExecutableForBrowserAndNodejs() {
|
@GradleTest
|
||||||
val project = Project("js-library-with-executable-browser-nodejs")
|
fun testJsBinaryLibraryAndExecutableForBrowserAndNodejs(gradleVersion: GradleVersion) {
|
||||||
|
project("js-library-with-executable-browser-nodejs", gradleVersion) {
|
||||||
|
build("build") {
|
||||||
|
assertFileInProjectExists("build/productionLibrary/js-library.js")
|
||||||
|
assertFileInProjectExists("build/productionLibrary/package.json")
|
||||||
|
assertFileInProjectExists("build/productionLibrary/main.js")
|
||||||
|
|
||||||
project.setupWorkingDir()
|
assertFileInProjectExists("build/distributions/js-library.js")
|
||||||
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
}
|
||||||
project.build("build") {
|
|
||||||
assertSuccessful()
|
|
||||||
|
|
||||||
assertFileExists("build/productionLibrary/js-library.js")
|
|
||||||
assertFileExists("build/productionLibrary/package.json")
|
|
||||||
assertFileExists("build/productionLibrary/main.js")
|
|
||||||
|
|
||||||
assertFileExists("build/distributions/js-library.js")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@DisplayName("publish sources jar task should also include dukat outputs")
|
||||||
fun testPublishSourcesJarTaskShouldAlsoIncludeDukatTaskOutputs() {
|
@GradleTest
|
||||||
with(
|
fun testPublishSourcesJarTaskShouldAlsoIncludeDukatTaskOutputs(gradleVersion: GradleVersion) {
|
||||||
Project(
|
project("js-library-ir", gradleVersion) {
|
||||||
"js-library-ir",
|
|
||||||
minLogLevel = LogLevel.INFO
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
setupWorkingDir()
|
|
||||||
build("sourcesJar") {
|
build("sourcesJar") {
|
||||||
assertSuccessful()
|
|
||||||
val sourcesJarFilePath = "build/libs/js-library-ir-kotlin-sources.jar"
|
val sourcesJarFilePath = "build/libs/js-library-ir-kotlin-sources.jar"
|
||||||
assertFileExists(sourcesJarFilePath)
|
assertFileInProjectExists(sourcesJarFilePath)
|
||||||
ZipFile(projectDir.resolve(sourcesJarFilePath)).use {
|
ZipFile(projectPath.resolve(sourcesJarFilePath).toFile()).use {
|
||||||
assertNotNull(it.getEntry("jsMain/index.module_decamelize.kt"))
|
assertNotNull(it.getEntry("jsMain/index.module_decamelize.kt"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
kotlin("js") version "<pluginMarkerVersion>"
|
kotlin("js")
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "com.example"
|
group = "com.example"
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
kotlin("js") version "<pluginMarkerVersion>"
|
kotlin("js")
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "com.example"
|
group = "com.example"
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
kotlin("js") version "<pluginMarkerVersion>"
|
kotlin("js")
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "com.example"
|
group = "com.example"
|
||||||
|
|||||||
Reference in New Issue
Block a user