diff options
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.scala | 44 |
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 => + } + } + } + +} |