summaryrefslogtreecommitdiff
path: root/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala')
-rw-r--r--examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala44
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala
new file mode 100644
index 0000000..2a44c80
--- /dev/null
+++ b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala
@@ -0,0 +1,44 @@
+package scala.scalajs.sbtplugin.test.env
+
+import scala.scalajs.tools.env.JSEnv
+import scala.scalajs.tools.io.MemVirtualJSFile
+import scala.scalajs.tools.classpath.PartialClasspath
+import scala.scalajs.tools.logging.NullLogger
+import scala.scalajs.tools.env.NullJSConsole
+
+import org.junit.Assert._
+
+abstract class JSEnvTest {
+
+ protected def newJSEnv: JSEnv
+
+ implicit class RunMatcher(codeStr: String) {
+
+ val emptyCP = PartialClasspath.empty.resolve()
+ val code = new MemVirtualJSFile("testScript.js").withContent(codeStr)
+
+ def hasOutput(expectedOut: String): Unit = {
+
+ val console = new StoreJSConsole()
+ val logger = new StoreLogger()
+
+ newJSEnv.jsRunner(emptyCP, code, logger, console).run()
+
+ val log = logger.getLog
+
+ assertTrue("VM shouldn't produce log. Log:\n" +
+ log.mkString("\n"), log.isEmpty)
+ assertEquals("Output should match", expectedOut, console.getLog)
+ }
+
+ def fails(): Unit = {
+ try {
+ newJSEnv.jsRunner(emptyCP, code, NullLogger, NullJSConsole).run()
+ assertTrue("Code snipped should fail", false)
+ } catch {
+ case e: Exception =>
+ }
+ }
+ }
+
+}