kosi-libs / MocKMP

A mocking processor for Kotlin Multiplatform
https://kosi-libs.org/mockmp
MIT License
183 stars 12 forks source link

Build Error with JS Source Set in KMP (Version 1.10.0) #65

Closed Amud closed 9 months ago

Amud commented 1 year ago

Environment:

Plugin version: 1.10.0 Kotlin version: 1.7.20 Gradle version: (please include if relevant) Operating System: (please include if relevant) Problem: I am using the org.kodein.mock.mockmp plugin for mock objects in unit tests for a common module in a Kotlin Multiplatform Project. While the plugin works fine with Android and iOS source sets, I encountered a build error when adding the JS source set.

Here's how I've configured the JS source set in my project:

js(IR) {
    binaries.library()
}

Error Log:

> Could not create task ':myLibrary1:compileProductionExecutableKotlinJs'.
   > Failed to apply plugin class 'org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin'.
      > Project#afterEvaluate(Action) on project ':myLibrary2' cannot be executed in the current context.

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':myLibrary1-imp'.
  at org.gradle.configuration.project.LifecycleProjectEvaluator.wrapException(LifecycleProjectEvaluator.java:84)
  at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:77)
  at org.gradle.configuration.project.LifecycleProjectEvaluator.access$400(LifecycleProjectEvaluator.java:55)
  at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate.run(LifecycleProjectEvaluator.java:255)
  at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
  at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
  at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
  at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
  at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
  at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
  at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)

Steps to Reproduce:

Configure the plugin for a common module. Add a JS source set as described above. Attempt to build the project.

Expected Behavior: The project should build successfully with the JS source set.

Actual Behavior: The build fails with the error message provided.

SalomonBrys commented 9 months ago

At least with the new version 1.16.0, I can confirm that JS is properly supported. See https://github.com/kosi-libs/MocKMP/blob/master/tests-projects/tests-jvm-junit4/build.gradle.kts#L19