typelevel/discipline-munit

[feature request] - Scala.js support

gvolpe opened this issue · 8 comments

We'd like to use it for Tyrian.js.

Cats uses it on all three platforms :)

lazy val core = crossProject(JVMPlatform, JSPlatform, NativePlatform)

Hmm perhaps there is an issue with cross-publishing? Can't seem to find it on a Scala 3 project:

sbt:Tyrian> tyrianJS/test
[info] Updating
[info] Resolved  dependencies
[warn]
[warn] 	Note: Unresolved dependencies path:
[error] stack trace is suppressed; run last tyrianJS / update for the full output
[error] (tyrianJS / update) sbt.librarymanagement.ResolveException: Error downloading org.scalameta:discipline-munit_sjs1_3:2.0.0-M3
[error]   Not found
[error]   Not found
[error]   not found: /home/gvolpe/.ivy2/local/org.scalameta/discipline-munit_sjs1_3/2.0.0-M3/ivys/ivy.xml
[error]   not found: https://repo1.maven.org/maven2/org/scalameta/discipline-munit_sjs1_3/2.0.0-M3/discipline-munit_sjs1_3-2.0.0-M3.pom
[error]   not found: https://s01.oss.sonatype.org/content/repositories/snapshots/org/scalameta/discipline-munit_sjs1_3/2.0.0-M3/discipline-munit_sjs1_3-2.0.0-M3.pom
[error] Total time: 2 s, completed Jan 15, 2023, 4:12:48 PM
"org.scalameta" %%% "discipline-munit" % "2.0.0-M3" % Test,

Nevermind.... org.typelevel 🤦🏽 🤣

Ok, I wasn't crazy. The dependency exists, but I get this error and I previously (wrongly) concluded it wasn't published for Scala.js

sbt:Tyrian> testOnly *SubTest*
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] No tests to run for Test / testOnly
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] No tests to run for tyrianJVM / Test / testOnly
[info] Fast optimizing /home/gvolpe/workspace/tyrian-fork/tyrian/js/target/scala-3.2.1/tyrian-test-fastopt
[error] Referring to non-existent method tyrian.SubTests.assertEquals(java.lang.Object,java.lang.Object,scala.Function0,munit.Location,scala.$less$colon$less)void
[error]   called from private munit.CatsEffectAssertions.assertIO$$anonfun$2$$anonfun$1(java.lang.Object,scala.Function0,munit.Location,scala.$less$colon$less,java.lang.Object)void
[error]   called from private munit.CatsEffectAssertions.assertIO$$anonfun$3$$anonfun$adapted$1(java.lang.Object,scala.Function0,munit.Location,scala.$less$colon$less,java.lang.Object)java.lang.Object
[error]   called from private munit.CatsEffectAssertions.assertIO$$anonfun$1(java.lang.Object,scala.Function0,munit.Location,scala.$less$colon$less,java.lang.Object)cats.effect.IO
[error]   called from munit.CatsEffectAssertions.assertIO(cats.effect.IO,java.lang.Object,scala.Function0,munit.Location,scala.$less$colon$less)cats.effect.IO
[error]   called from munit.CatsEffectSuite.assertIO(cats.effect.IO,java.lang.Object,scala.Function0,munit.Location,scala.$less$colon$less)cats.effect.IO
[error]   called from munit.CatsEffectAssertions$MUnitCatsAssertionsForIOOps.assertEquals(java.lang.Object,scala.Function0,munit.Location,scala.$less$colon$less)cats.effect.IO
[error]   called from private tyrian.CmdTests.$init$$$anonfun$11()java.lang.Object
[error]   called from constructor tyrian.CmdTests.<init>()void
[error]   called from static constructor tyrian.CmdTests.<stinit>()void
[error]   called from core module analyzer
[error] involving instantiated classes:
[error]   tyrian.CmdTests
[error]   tyrian.SubTests
[error]   munit.CatsEffectAssertions$MUnitCatsAssertionsForIOOps
[error] Referring to non-existent method tyrian.CmdTests.assertEquals(java.lang.Object,java.lang.Object,scala.Function0,munit.Location,scala.$less$colon$less)void

Looks like a bin-compat issue, right?

discipline-munit 2.0.0-M3 is published against munit 1.0.0 milestones. Have you updated to those?

If you want to use the munit 0.7 series, then you should downgrade to discipline-munit 1.x series.

I realize I'm not familiar with the versions' matrix of munit. Trying to update munit-cats-effect-3 to 2.0.0-M3 it doesn't seem to exist for Scala 3 / JS. I'll try to downgrade to the 1.x series, thank you.

@gvolpe munit-cats-effect-3 is now just published as munit-cats-effect since we droped CE2. Sorry for the confusion :)

Haha alright, I was going nuts 😄 Downgrading worked, now I will try to get onto the latest milestone once again, thank you!