diff --git a/build.sbt b/build.sbt index 64e9afc..7fb5741 100644 --- a/build.sbt +++ b/build.sbt @@ -66,10 +66,10 @@ ThisBuild / githubWorkflowBuild := Seq(WorkflowStep.Sbt(List("${{ matrix.ci }}") replaceCommandAlias("ci", ciVariants.mkString("; ", "; ", "")) -addCommandAlias("ciNode", "; set useJSEnv := JSEnv.NodeJS; core/test; core/doc") -addCommandAlias("ciFirefox", "; set useJSEnv := JSEnv.Firefox; all core/test webworker/test; set useJSEnv := JSEnv.NodeJS") -addCommandAlias("ciChrome", "; set useJSEnv := JSEnv.Chrome; all core/test webworker/test; set useJSEnv := JSEnv.NodeJS") -addCommandAlias("ciJSDOMNodeJS", "; set useJSEnv := JSEnv.JSDOMNodeJS; core/test; set useJSEnv := JSEnv.NodeJS") +addCommandAlias("ciNode", "; set Global / useJSEnv := JSEnv.NodeJS; test; core/doc") +addCommandAlias("ciFirefox", "; set Global / useJSEnv := JSEnv.Firefox; test; set Global / useJSEnv := JSEnv.NodeJS") +addCommandAlias("ciChrome", "; set Global / useJSEnv := JSEnv.Chrome; test; set Global / useJSEnv := JSEnv.NodeJS") +addCommandAlias("ciJSDOMNodeJS", "; set Global / useJSEnv := JSEnv.JSDOMNodeJS; test; set Global / useJSEnv := JSEnv.NodeJS") // release configuration @@ -161,6 +161,6 @@ lazy val webworker = project "org.scalameta" %%% "munit" % MUnitVersion % Test, ), (Test / test) := (Test / test).dependsOn(Compile / fastOptJS).value, - buildInfoKeys := Seq[BuildInfoKey](scalaVersion, baseDirectory), + buildInfoKeys := Seq(scalaVersion, baseDirectory, BuildInfoKey("isBrowser" -> useJSEnv.value.isBrowser)), buildInfoPackage := "org.scalajs.macrotaskexecutor") .enablePlugins(ScalaJSPlugin, BuildInfoPlugin, NoPublishPlugin) diff --git a/project/JSEnv.scala b/project/JSEnv.scala index 4cd815f..ad249de 100644 --- a/project/JSEnv.scala +++ b/project/JSEnv.scala @@ -1,7 +1,7 @@ -sealed abstract class JSEnv +sealed abstract class JSEnv(val isBrowser: Boolean) object JSEnv { - case object Chrome extends JSEnv - case object Firefox extends JSEnv - case object JSDOMNodeJS extends JSEnv - case object NodeJS extends JSEnv + case object Chrome extends JSEnv(true) + case object Firefox extends JSEnv(true) + case object JSDOMNodeJS extends JSEnv(false) + case object NodeJS extends JSEnv(false) } diff --git a/webworker/src/test/scala/org/scalajs/macrotaskexecutor/WebWorkerMacrotaskSuite.scala b/webworker/src/test/scala/org/scalajs/macrotaskexecutor/WebWorkerMacrotaskSuite.scala index bfc7a49..9d28562 100644 --- a/webworker/src/test/scala/org/scalajs/macrotaskexecutor/WebWorkerMacrotaskSuite.scala +++ b/webworker/src/test/scala/org/scalajs/macrotaskexecutor/WebWorkerMacrotaskSuite.scala @@ -20,40 +20,37 @@ import munit.FunSuite import org.scalajs.dom.webworkers.Worker import scala.concurrent.Promise -import scala.scalajs.js -import scala.util.Try class WebWorkerMacrotaskSuite extends FunSuite { import MacrotaskExecutor.Implicits._ def scalaVersion = if (BuildInfo.scalaVersion.startsWith("2")) - BuildInfo.scalaVersion.split("\\.").init.mkString(".") + BuildInfo.scalaVersion.split('.').init.mkString(".") else BuildInfo.scalaVersion def targetDir = s"${BuildInfo.baseDirectory}/target/scala-${scalaVersion}" - Try(js.isUndefined(js.Dynamic.global.window.Worker)).toOption - .filterNot(identity) - .foreach { _ => - test("pass the MacrotaskSuite in a web worker") { - val p = Promise[Boolean]() + override def munitIgnore = !BuildInfo.isBrowser - val worker = new Worker( - s"file://${targetDir}/scala-js-macrotask-executor-webworker-fastopt/main.js" - ) + test("pass the MacrotaskSuite in a web worker") { + val p = Promise[Boolean]() - worker.onmessage = { event => - event.data match { - case log: String => println(log) - case success: Boolean => p.success(success) - case _ => () - } - } - - p.future.map(assert(_)) + val worker = new Worker( + s"file://${targetDir}/scala-js-macrotask-executor-webworker-fastopt/main.js" + ) + worker.onmessage = { event => + event.data match { + case log: String => println(log) + case success: Boolean => p.success(success) + case _ => () } } + + p.future.map(assert(_)) + + } + }