diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index 0404d50eb34..19bd18f53f0 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -213,6 +213,37 @@ class Kotlin2JsGradlePluginIT : AbstractKotlin2JsGradlePluginIT(false) { assertTrue(fileInWorkingDir("$pathPrefix/kotlin.js").length() < 500 * 1000, "Looks like kotlin.js file was not minified by DCE") } } + + @Test + fun testKotlinJsDependencyWithJsFiles() = with(Project("kotlin-js-dependency-with-js-files")) { + setupWorkingDir() + gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl) + + build( + "packageJson" + ) { + assertSuccessful() + + val dependency = "2p-parser-core" + val version = "0.11.1" + + assertFileExists("build/js/packages_imported/$dependency/$version") + + fun getPackageJson(dependency: String, version: String) = + fileInWorkingDir("build/js/packages_imported/$dependency/$version") + .resolve(NpmProject.PACKAGE_JSON) + .let { + Gson().fromJson(it.readText(), PackageJson::class.java) + } + + + val packageJson = getPackageJson(dependency, version) + + assertEquals(dependency, packageJson.name) + assertEquals(version, packageJson.version) + assertEquals("$dependency.js", packageJson.main) + } + } } abstract class AbstractKotlin2JsGradlePluginIT(private val irBackend: Boolean) : BaseGradleIT() { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-dependency-with-js-files/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-dependency-with-js-files/build.gradle.kts new file mode 100644 index 00000000000..8a508556045 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-dependency-with-js-files/build.gradle.kts @@ -0,0 +1,21 @@ +plugins { + kotlin("js") version "" +} + +group = "org.example" +version = "1.0-SNAPSHOT" + +repositories { + mavenLocal() + mavenCentral() +} + +dependencies { + implementation("it.unibo.tuprolog:parser-core-js:0.11.1") +} + +kotlin { + js { + nodejs() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-dependency-with-js-files/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-dependency-with-js-files/settings.gradle.kts new file mode 100644 index 00000000000..c9052c50d60 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-dependency-with-js-files/settings.gradle.kts @@ -0,0 +1,8 @@ +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + } +} + +rootProject.name = "kotlin-js-dependency-with-js-files" \ No newline at end of file