[K/JS] test: add @file:JsExport tests for each @JsExport test + auto-generate TypeScript export tests.

This commit is contained in:
Artem Kobzar
2022-08-26 09:51:59 +00:00
committed by Space
parent d65775ca1a
commit dbda8dcad1
139 changed files with 4242 additions and 31 deletions
+36
View File
@@ -156,6 +156,41 @@ val unzipJsShell by task<Copy> {
val testDataDir = project(":js:js.translator").projectDir.resolve("testData")
val typescriptTestsDir = testDataDir.resolve("typescript-export")
val generateJsExportOnFileTestFilesForTS by task<Copy> {
val exportFileDirPostfix = "-in-exported-file"
from(typescriptTestsDir) {
include("**/*.kt")
include("**/*.ts")
include("**/tsconfig.json")
exclude("selective-export/*")
exclude("implicit-export/*")
exclude("inheritance/*")
exclude("strict-implicit-export/*")
exclude("*$exportFileDirPostfix")
eachFile {
path = "${relativePath.parent}$exportFileDirPostfix/$name"
var isFirstLine = true
filter {
when {
isFirstLine && name.endsWith(".kt") -> "/** This file is generated by {@link :js:js.test:generateJsExportOnFileTestFilesForTS} task. DO NOT MODIFY MANUALLY */\n\n$it"
.also { isFirstLine = false }
it.contains("// FILE") -> "$it\n\n@file:JsExport"
else -> it.replace("@JsExport", "")
}
}
}
}
into(typescriptTestsDir)
}
val installTsDependencies = task<NpmTask>("installTsDependencies") {
workingDir.set(testDataDir)
args.set(listOf("install"))
@@ -314,6 +349,7 @@ testsJar {}
val generateTests by generator("org.jetbrains.kotlin.generators.tests.GenerateJsTestsKt") {
dependsOn(":compiler:generateTestData")
dependsOn(generateJsExportOnFileTestFilesForTS)
}
val prepareMochaTestData by tasks.registering(Copy::class) {