[K/JS] Add test for the private inner class bug ^KT-65657

This commit is contained in:
Artem Kobzar
2024-03-14 12:48:24 +00:00
committed by Space Team
parent 324d2e042a
commit 75eeb5291d
7 changed files with 73 additions and 0 deletions
@@ -2623,6 +2623,12 @@ public class FirJsES6BoxTestGenerated extends AbstractFirJsES6BoxTest {
runTest("js/js.translator/testData/box/esModules/jsExport/perFileExportedApi.kt");
}
@Test
@TestMetadata("privateInnerClass.kt")
public void testPrivateInnerClass() {
runTest("js/js.translator/testData/box/esModules/jsExport/privateInnerClass.kt");
}
@Test
@TestMetadata("recursiveExport.kt")
public void testRecursiveExport() {
@@ -2517,6 +2517,12 @@ public class FirLightTreeJsBoxTestGenerated extends AbstractFirLightTreeJsBoxTes
runTest("js/js.translator/testData/box/esModules/jsExport/perFileExportedApi.kt");
}
@Test
@TestMetadata("privateInnerClass.kt")
public void testPrivateInnerClass() {
runTest("js/js.translator/testData/box/esModules/jsExport/privateInnerClass.kt");
}
@Test
@TestMetadata("recursiveExport.kt")
public void testRecursiveExport() {
@@ -2517,6 +2517,12 @@ public class FirPsiJsBoxTestGenerated extends AbstractFirPsiJsBoxTest {
runTest("js/js.translator/testData/box/esModules/jsExport/perFileExportedApi.kt");
}
@Test
@TestMetadata("privateInnerClass.kt")
public void testPrivateInnerClass() {
runTest("js/js.translator/testData/box/esModules/jsExport/privateInnerClass.kt");
}
@Test
@TestMetadata("recursiveExport.kt")
public void testRecursiveExport() {
@@ -2623,6 +2623,12 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test {
runTest("js/js.translator/testData/box/esModules/jsExport/perFileExportedApi.kt");
}
@Test
@TestMetadata("privateInnerClass.kt")
public void testPrivateInnerClass() {
runTest("js/js.translator/testData/box/esModules/jsExport/privateInnerClass.kt");
}
@Test
@TestMetadata("recursiveExport.kt")
public void testRecursiveExport() {
@@ -2517,6 +2517,12 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
runTest("js/js.translator/testData/box/esModules/jsExport/perFileExportedApi.kt");
}
@Test
@TestMetadata("privateInnerClass.kt")
public void testPrivateInnerClass() {
runTest("js/js.translator/testData/box/esModules/jsExport/privateInnerClass.kt");
}
@Test
@TestMetadata("recursiveExport.kt")
public void testRecursiveExport() {
@@ -0,0 +1,33 @@
// KT-65657
// DONT_TARGET_EXACT_BACKEND: JS
// SKIP_MINIFICATION
// ES_MODULES
// FILE: main.kt
@JsExport
open class TableDriver {
private inner class Table
fun foo() = "OK"
}
external interface JsResult {
val value: String
val inner: Any?
}
@JsModule("./privateInnerClass.mjs")
external fun jsBox(): JsResult
fun box(): String {
val res = jsBox()
if (res.value != "OK") {
return "Fail: value is ${res.value}"
}
if (res.inner != null) {
return "Fail: inner is ${res.inner}"
}
return "OK"
}
@@ -0,0 +1,10 @@
import { TableDriver } from "./privateInnerClass_v5.mjs"
export default function box() {
var tableDriver = new TableDriver();
return {
value: tableDriver.foo(),
inner: tableDriver.Table
};
};