summaryrefslogtreecommitdiff
path: root/scalajslib/jsbridges/0.6
diff options
context:
space:
mode:
authorNikolay Tatarinov <5min4eq.unity@gmail.com>2018-02-01 22:07:39 +0300
committerGitHub <noreply@github.com>2018-02-01 22:07:39 +0300
commit5be2c5aea4527cf637948e6bf2e4c56e3273fbd9 (patch)
tree38d9c675c68ac7505708f182170589119453db21 /scalajslib/jsbridges/0.6
parentbc777b3c4e83149f45df7edda245868e22495eb3 (diff)
downloadmill-5be2c5aea4527cf637948e6bf2e4c56e3273fbd9.tar.gz
mill-5be2c5aea4527cf637948e6bf2e4c56e3273fbd9.tar.bz2
mill-5be2c5aea4527cf637948e6bf2e4c56e3273fbd9.zip
WIP: Scala js testing (#119)
fixes #102. Use scala js testing framework to launch tests
Diffstat (limited to 'scalajslib/jsbridges/0.6')
-rw-r--r--scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala (renamed from scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala)27
1 files changed, 24 insertions, 3 deletions
diff --git a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
index 3ed17f16..3525e69e 100644
--- a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala
+++ b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
@@ -5,11 +5,15 @@ package bridge
import java.io.File
import org.scalajs.core.tools.io.IRFileCache.IRContainer
-import org.scalajs.core.tools.io.{AtomicWritableFileVirtualJSFile, FileVirtualBinaryFile, FileVirtualScalaJSIRFile, VirtualJarFile}
+import org.scalajs.core.tools.io._
+import org.scalajs.core.tools.jsdep.ResolvedJSDependency
import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker}
import org.scalajs.core.tools.logging.ScalaConsoleLogger
+import org.scalajs.jsenv._
+import org.scalajs.jsenv.nodejs._
+import org.scalajs.testadapter.TestAdapter
-class ScalaJSLinkerBridge extends mill.scalajslib.ScalaJSLinkerBridge{
+class ScalaJSBridge extends mill.scalajslib.ScalaJSBridge {
def link(sources: Array[File], libraries: Array[File], dest: File, main: String, fullOpt: Boolean): Unit = {
val config = StandardLinker.Config().withOptimizer(fullOpt)
val linker = StandardLinker(config)
@@ -21,4 +25,21 @@ class ScalaJSLinkerBridge extends mill.scalajslib.ScalaJSLinkerBridge{
val initializer = Option(main).map { cls => ModuleInitializer.mainMethodWithArgs(cls, "main") }
linker.link(sourceSJSIRs ++ jarSJSIRs, initializer.toSeq, destFile, logger)
}
-} \ No newline at end of file
+
+ def getFramework(frameworkName: String,
+ linkedFile: File): sbt.testing.Framework = {
+ val env = new NodeJSEnv().loadLibs(
+ Seq(ResolvedJSDependency.minimal(new FileVirtualJSFile(linkedFile)))
+ )
+ val jsConsole = ConsoleJSConsole
+ val config = TestAdapter.Config().withLogger(new ScalaConsoleLogger)
+ val adapter =
+ new TestAdapter(env, config)
+
+ adapter
+ .loadFrameworks(List(List(frameworkName)))
+ .flatten
+ .headOption
+ .getOrElse(throw new RuntimeException("Failed to get framework"))
+ }
+}