From 196dc6b0718a9e7f20b9e09b52f82ca2912d6e55 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 21 Oct 2021 15:24:15 +0300 Subject: [PATCH] [JS IR] Add test for enum exportness ^KT-44494 fixed --- .../semantics/IrBoxJsES6TestGenerated.java | 5 +++ .../ir/semantics/IrBoxJsTestGenerated.java | 5 +++ .../testData/box/export/exportEnumClass.kt | 34 +++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 js/js.translator/testData/box/export/exportEnumClass.kt diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java index 5eb5a5a23ac..82264210c26 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java @@ -2213,6 +2213,11 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test { runTest("js/js.translator/testData/box/export/exportAllFile.kt"); } + @TestMetadata("exportEnumClass.kt") + public void testExportEnumClass() throws Exception { + runTest("js/js.translator/testData/box/export/exportEnumClass.kt"); + } + @TestMetadata("exportNestedClass.kt") public void testExportNestedClass() throws Exception { runTest("js/js.translator/testData/box/export/exportNestedClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java index 8f3744be978..00434ebb6c9 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java @@ -2208,6 +2208,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { runTest("js/js.translator/testData/box/export/exportAllFile.kt"); } + @TestMetadata("exportEnumClass.kt") + public void testExportEnumClass() throws Exception { + runTest("js/js.translator/testData/box/export/exportEnumClass.kt"); + } + @TestMetadata("exportNestedClass.kt") public void testExportNestedClass() throws Exception { runTest("js/js.translator/testData/box/export/exportNestedClass.kt"); diff --git a/js/js.translator/testData/box/export/exportEnumClass.kt b/js/js.translator/testData/box/export/exportEnumClass.kt new file mode 100644 index 00000000000..671200e85cd --- /dev/null +++ b/js/js.translator/testData/box/export/exportEnumClass.kt @@ -0,0 +1,34 @@ +// IGNORE_BACKEND: JS +// RUN_PLAIN_BOX_FUNCTION +// INFER_MAIN_MODULE + +// MODULE: export-enum-class +// FILE: lib.kt + +@JsExport +enum class Foo { + A, + B; + + val foo = ordinal + + fun bar() = name + + companion object { + val baz = "baz" + } +} + +// FILE: test.js +function box() { + if (this["export-enum-class"].Foo.A !== this["export-enum-class"].Foo.A) return "fail1" + if (this["export-enum-class"].Foo.B !== this["export-enum-class"].Foo.B) return "fail2" + + if (this["export-enum-class"].Foo.Companion.baz !== "baz") return "fail3" + + if (this["export-enum-class"].Foo.A.foo !== 0) return "fail4" + if (this["export-enum-class"].Foo.B.foo !== 1) return "fail5" + + if (this["export-enum-class"].Foo.A.bar() !== "A") return "fail6" + if (this["export-enum-class"].Foo.B.bar() !== "B") return "fail7" +} \ No newline at end of file