[K/Wasm] Generate .d.ts tests for K/Wasm in the same way as we do for K/JS ^KT-65778 Fixed
This commit is contained in:
@@ -113,5 +113,15 @@ fun main(args: Array<String>) {
|
||||
model("debug/stepping")
|
||||
}
|
||||
}
|
||||
|
||||
testGroup("wasm/wasm.tests/tests-gen", "js/js.translator/testData", testRunnerMethodName = "runTest0") {
|
||||
testClass<AbstractFirWasmTypeScriptExportTest> {
|
||||
model("typescript-export/wasm/")
|
||||
}
|
||||
|
||||
testClass<AbstractK1WasmTypeScriptExportTest> {
|
||||
model("typescript-export/wasm/")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||
import org.jetbrains.kotlin.test.model.*
|
||||
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.configuration.WasmEnvironmentConfiguratorJs
|
||||
import org.jetbrains.kotlin.wasm.test.converters.FirWasmKlibBackendFacade
|
||||
import org.jetbrains.kotlin.wasm.test.converters.WasmBackendFacade
|
||||
@@ -81,4 +82,28 @@ open class AbstractK1WasmSteppingTest : AbstractK1WasmTest(
|
||||
+WasmEnvironmentConfigurationDirectives.GENERATE_SOURCE_MAP
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractK1WasmTypeScriptExportTest : AbstractK1WasmTest(
|
||||
"${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/typescript-export/wasm/",
|
||||
"typescript-export/"
|
||||
) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.defaultDirectives {
|
||||
+WasmEnvironmentConfigurationDirectives.CHECK_TYPESCRIPT_DECLARATIONS
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirWasmTypeScriptExportTest : AbstractK1WasmTest(
|
||||
"${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/typescript-export/wasm/",
|
||||
"typescript-export/"
|
||||
) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.defaultDirectives {
|
||||
+WasmEnvironmentConfigurationDirectives.CHECK_TYPESCRIPT_DECLARATIONS
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
@@ -56,6 +56,14 @@ abstract class AbstractWasmArtifactsCollector(testServices: TestServices) : Wasm
|
||||
mjsFiles += AdditionalFile(it.name, it.readText())
|
||||
}
|
||||
|
||||
|
||||
originalFile.parentFile.resolve(originalFile.nameWithoutExtension + "__main${JavaScript.DOT_EXTENSION}")
|
||||
.takeIf { it.exists() }
|
||||
?.let {
|
||||
entryMjs = it.name
|
||||
mjsFiles += AdditionalFile(it.name, it.readText())
|
||||
}
|
||||
|
||||
return JsArtifacts(entryMjs, jsFiles, mjsFiles)
|
||||
}
|
||||
|
||||
|
||||
@@ -21,8 +21,9 @@ class WasmDtsHandler(testServices: TestServices) : WasmBinaryArtifactHandler(tes
|
||||
val globalDirectives = testServices.moduleStructure.allDirectives
|
||||
if (WasmEnvironmentConfigurationDirectives.CHECK_TYPESCRIPT_DECLARATIONS !in globalDirectives) return
|
||||
|
||||
val referenceDtsFile = module.files.first().originalFile.withReplacedExtensionOrNull(".kt", ".d.ts")
|
||||
?: error("Can't find reference .d.ts file")
|
||||
val referenceDtsFile = module.files.first().originalFile.parentFile
|
||||
.resolve("index.d.mts")
|
||||
.run { takeIf { it.exists() } ?: error("'${path}' doesn't exist") }
|
||||
|
||||
val generatedDts = info.compilerResult.dts
|
||||
?: error("Can't find generated .d.ts file")
|
||||
|
||||
Reference in New Issue
Block a user