sbt / sbt-projectmatrix

MIT License
123 stars 14 forks source link

ScalaJs fastLinkJs and test tasks don't work when building a Scala.js project targeting Scala3 #69

Open DamianReeves opened 2 years ago

DamianReeves commented 2 years ago

I've been using projectmatrix and noticed that for Scala 3 projects which build to Scala.js that the fastLinkJS (and as a result test) tasks does not seem to work. It ends up reporting linking errors.

For example in this project (https://github.com/DamianReeves/zio-json-usage-matrix), when I build for Scala 213 and ScalaJS linking and testing works:

exampleJS / test

But if I do the same for the exampleJS3 project I get issues:

exampleJS3 / test
sbt:zio-json-usage-matrix> exampleJS3 / test
[info] Fast optimizing /Users/damian/code/repos/github/DamianReeves/zio-json-usage-matrix/example/target/js-3/example-test-fastopt
[error] Referring to non-existent class zio.json.package$EncoderOps$
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.package$
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.package$EncoderOps$
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent method zio.json.package$EncoderOps$.toJson$extension(java.lang.Object,zio.json.JsonEncoder)java.lang.String
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent method zio.json.package$EncoderOps$.toJsonPretty$extension(java.lang.Object,zio.json.JsonEncoder)java.lang.String
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.package$
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent method zio.json.package$.EncoderOps(java.lang.Object)java.lang.Object
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.package$EncoderOps$
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Cannot access module for non-module zio.json.package$EncoderOps$
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.package$
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Cannot access module for non-module zio.json.package$
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.JsonCodec
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.JsonCodec
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.JsonCodec
[error]   called from example.Instruction$.codec()zio.json.JsonCodec
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.Instruction$
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class magnolia.SealedTrait$Subtype
[error]   called from constructor example.Instruction$.<init>()void
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class magnolia.SealedTrait$Subtype
[error]   called from constructor example.Instruction$.<init>()void
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class magnolia.SealedTrait$
[error]   called from constructor example.Instruction$.<init>()void
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class magnolia.CallByNeed$
[error]   called from constructor example.Instruction$.<init>()void
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.DeriveJsonCodec$
[error]   called from constructor example.Instruction$.<init>()void
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Referring to non-existent class zio.json.JsonCodec
[error]   called from constructor example.Instruction$.<init>()void
[error]   called from private example.InstructionSpec$.spec$$anonfun$1()zio.test.BoolAlgebra
[error]   called from example.InstructionSpec$.spec()zio.test.Spec
[error]   called from zio.test.sbt.BaseTestTask.run(sbt.testing.EventHandler)zio.ZIO
[error]   called from private zio.test.sbt.ZTestTask.execute$$anonfun$1(sbt.testing.EventHandler,[sbt.testing.Logger)zio.ZIO
[error]   called from zio.test.sbt.ZTestTask.execute(sbt.testing.EventHandler,[sbt.testing.Logger,scala.Function1)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$executeFun$1(sbt.testing.Runner,int,org.scalajs.testing.common.ExecuteRequest)scala.concurrent.Future
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.executeFun(int,sbt.testing.Runner)scala.Function1
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.$anonfun$createRunnerFun$1(boolean,org.scalajs.testing.common.RunnerArgs)void
[error]   called from private org.scalajs.testing.bridge.TestAdapterBridge$.createRunnerFun(boolean)scala.Function1
[error]   called from org.scalajs.testing.bridge.TestAdapterBridge$.start()void
[error]   called from org.scalajs.testing.bridge.Bridge$.start()void
[error]   called from static org.scalajs.testing.bridge.Bridge.start()void
[error]   called from core module module initializers
[error] involving instantiated classes:
[error]   example.InstructionSpec$
[error]   zio.test.sbt.ZTestTask
[error]   org.scalajs.testing.bridge.TestAdapterBridge$
[error]   org.scalajs.testing.bridge.Bridge$
[error] Not showing 111 more linking errors
[error] There were linking errors
[error] (exampleJS3 / Test / fastLinkJS) There were linking errors
[error] Total time: 0 s, completed Nov 13, 2021 8:15:22 AM
sbt:zio-json-usage-matrix> 

Please note I isolated the issue to projectmatrix by trying this with a normal crossbuilt project here as well: https://github.com/DamianReeves/zio-json-usage .

The crossbuilt project there tests and links for Scala.js with Scala 3 just fine.