diff --git a/idea/testData/inspections/unusedSymbol/js/inspectionData/expected.xml b/idea/testData/inspections/unusedSymbol/js/inspectionData/expected.xml
new file mode 100644
index 00000000000..8fdab321412
--- /dev/null
+++ b/idea/testData/inspections/unusedSymbol/js/inspectionData/expected.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/idea/testData/inspections/unusedSymbol/js/inspectionData/inspections.test b/idea/testData/inspections/unusedSymbol/js/inspectionData/inspections.test
new file mode 100644
index 00000000000..02aea1c357e
--- /dev/null
+++ b/idea/testData/inspections/unusedSymbol/js/inspectionData/inspections.test
@@ -0,0 +1 @@
+// INSPECTION_CLASS: org.jetbrains.kotlin.idea.inspections.UnusedSymbolInspection
diff --git a/idea/testData/inspections/unusedSymbol/js/main.kt b/idea/testData/inspections/unusedSymbol/js/main.kt
new file mode 100644
index 00000000000..adb5b33c573
--- /dev/null
+++ b/idea/testData/inspections/unusedSymbol/js/main.kt
@@ -0,0 +1,3 @@
+fun main(args: Array) {
+
+}
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractJetInspectionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractJetInspectionTest.kt
index ff573c7e1be..21e12d49edc 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractJetInspectionTest.kt
+++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractJetInspectionTest.kt
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.idea.test.JetLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.test.InTextDirectivesUtils
import org.jetbrains.kotlin.test.JetTestUtils
import java.io.File
+import kotlin.test.assertFalse
public abstract class AbstractJetInspectionTest: JetLightCodeInsightFixtureTestCase() {
companion object {
@@ -79,10 +80,20 @@ public abstract class AbstractJetInspectionTest: JetLightCodeInsightFixtureTestC
configureByText(file.getName(), fileText)!!
}
+ val isJs = srcDir.endsWith("js")
+
val isWithRuntime = psiFiles.any { InTextDirectivesUtils.findStringWithPrefixes(it.getText(), "// WITH_RUNTIME") != null }
val fullJdk = psiFiles.any { InTextDirectivesUtils.findStringWithPrefixes(it.getText(), "// FULL_JDK") != null }
+ if (isJs) {
+ assertFalse(isWithRuntime)
+ assertFalse(fullJdk)
+ }
+
try {
+ if (isJs) {
+ ConfigLibraryUtil.configureKotlinJsRuntime(myFixture.getModule())
+ }
if (isWithRuntime) {
ConfigLibraryUtil.configureKotlinRuntimeAndSdk(
myFixture.getModule(),
@@ -103,6 +114,9 @@ public abstract class AbstractJetInspectionTest: JetLightCodeInsightFixtureTestC
if (isWithRuntime) {
ConfigLibraryUtil.unConfigureKotlinRuntimeAndSdk(myFixture.getModule(), IdeaTestUtil.getMockJdk17())
}
+ if (isJs) {
+ ConfigLibraryUtil.unConfigureKotlinJsRuntimeAndSdk(myFixture.getModule(), IdeaTestUtil.getMockJdk17())
+ }
}
}
}
diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/JetInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/JetInspectionTestGenerated.java
index f275df4c325..9180c1e0f53 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/JetInspectionTestGenerated.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/JetInspectionTestGenerated.java
@@ -118,6 +118,12 @@ public class JetInspectionTestGenerated extends AbstractJetInspectionTest {
doTest(fileName);
}
+ @TestMetadata("unusedSymbol/js/inspectionData/inspections.test")
+ public void testUnusedSymbol_js_inspectionData_Inspections_test() throws Exception {
+ String fileName = JetTestUtils.navigationMetadata("idea/testData/inspections/unusedSymbol/js/inspectionData/inspections.test");
+ doTest(fileName);
+ }
+
@TestMetadata("unusedSymbol/object/inspectionData/inspections.test")
public void testUnusedSymbol_object_inspectionData_Inspections_test() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/inspections/unusedSymbol/object/inspectionData/inspections.test");