diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-12-12 16:56:02 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-12 16:56:02 -0800 |
commit | 9ba4cb69331386dfde9bac69dc2d5b22401face3 (patch) | |
tree | 120349e8015ae5717d36bd44209cde6ff9543518 /scalajslib/test/src/MultiModuleTests.scala | |
parent | ea7fceb6e56f53bde3517586dfc57e10a605a524 (diff) | |
download | mill-9ba4cb69331386dfde9bac69dc2d5b22401face3.tar.gz mill-9ba4cb69331386dfde9bac69dc2d5b22401face3.tar.bz2 mill-9ba4cb69331386dfde9bac69dc2d5b22401face3.zip |
collapse boilerplate folder structure within src/ folders (#505)
* collapse boilerplate folder structure within src/ folders
* .
Diffstat (limited to 'scalajslib/test/src/MultiModuleTests.scala')
-rw-r--r-- | scalajslib/test/src/MultiModuleTests.scala | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/scalajslib/test/src/MultiModuleTests.scala b/scalajslib/test/src/MultiModuleTests.scala new file mode 100644 index 00000000..2ffea2cf --- /dev/null +++ b/scalajslib/test/src/MultiModuleTests.scala @@ -0,0 +1,93 @@ +package mill.scalajslib + +import mill._ +import mill.define.Discover +import mill.eval.Evaluator +import mill.util._ +import mill.scalalib._ +import utest._ +import mill.scalajslib.api._ +object MultiModuleTests extends TestSuite { + val workspacePath = TestUtil.getOutPathStatic() / "multi-module" + val sourcePath = os.pwd / 'scalajslib / 'test / 'resources / "multi-module" + + object MultiModule extends TestUtil.BaseModule { + trait BaseModule extends ScalaJSModule { + def scalaVersion = "2.12.4" + def scalaJSVersion = "0.6.22" + } + + object client extends BaseModule { + override def millSourcePath = workspacePath / 'client + override def moduleDeps = Seq(shared) + override def mainClass = Some("Main") + object test extends Tests { + def testFrameworks = Seq("utest.runner.Framework") + override def ivyDeps = Agg(ivy"com.lihaoyi::utest::0.6.3") + } + } + + object shared extends BaseModule { + override def millSourcePath = workspacePath / 'shared + } + + override lazy val millDiscover = Discover[this.type] + } + + val evaluator = TestEvaluator.static(MultiModule) + + def tests: Tests = Tests { + prepareWorkspace() + + def checkOpt(mode: OptimizeMode) = { + val task = mode match { + case FullOpt => MultiModule.client.fullOpt + case FastOpt => MultiModule.client.fastOpt + } + val Right((linked, evalCount)) = evaluator(task) + + val runOutput = ScalaJsUtils.runJS(linked.path) + assert( + evalCount > 0, + runOutput == "Hello from Scala.js, result is: 3" + ) + } + + 'fastOpt - TestUtil.disableInJava9OrAbove(checkOpt(FastOpt)) + 'fullOpt - TestUtil.disableInJava9OrAbove(checkOpt(FullOpt)) + + 'test - { + val Right(((_, testResults), evalCount)) = evaluator(MultiModule.client.test.test()) + + assert( + evalCount > 0, + testResults.size == 3, + testResults.forall(_.status == "Success") + ) + } + + 'run - { + val command = MultiModule.client.run() + + val Right((_, evalCount)) = evaluator(command) + + val paths = Evaluator.resolveDestPaths( + evaluator.outPath, + command.ctx.segments + ) + val log = os.read(paths.log) + assert( + evalCount > 0, + log.contains("node"), + log.contains("Hello from Scala.js, result is: 3") + ) + } + } + + def prepareWorkspace(): Unit = { + os.remove.all(workspacePath) + os.makeDir.all(workspacePath / os.up) + os.copy(sourcePath, workspacePath) + } + +} |