summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/playlib/test/resources/invalid/core/conf/routes3
-rw-r--r--contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala25
2 files changed, 25 insertions, 3 deletions
diff --git a/contrib/playlib/test/resources/invalid/core/conf/routes b/contrib/playlib/test/resources/invalid/core/conf/routes
new file mode 100644
index 00000000..1b31139f
--- /dev/null
+++ b/contrib/playlib/test/resources/invalid/core/conf/routes
@@ -0,0 +1,3 @@
+GET / controllers.HomeController.index
+BOB =error controllers.HomeController.error(foo)
+GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
diff --git a/contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala b/contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala
index e4dc7399..71ee6c4d 100644
--- a/contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala
+++ b/contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala
@@ -1,6 +1,8 @@
package mill.playlib
import ammonite.ops.{Path, cp, ls, mkdir, pwd, rm, _}
+import mill.T
+import mill.api.Result.Failure
import mill.util.{TestEvaluator, TestUtil}
import utest.framework.TestPath
import utest.{TestSuite, Tests, assert, _}
@@ -19,13 +21,20 @@ object HelloWorldTests extends TestSuite {
object core extends HelloWorldModule {
override def playVersion = "2.6.14"
+
+ /**
+ * What version of Scala to use
+ */
+ override def scalaVersion: T[String] = "2.12.8"
}
+
}
val resourcePath: Path = pwd / 'contrib / 'playlib / 'test / 'resources / "hello-world"
+ val invalidResourcePath: Path = pwd / 'contrib / 'playlib / 'test / 'resources / "invalid"
def workspaceTest[T, M <: TestUtil.BaseModule](m: M, resourcePath: Path = resourcePath)
- (t: TestEvaluator[M] => T)
+ (t: TestEvaluator => T)
(implicit tp: TestPath): T = {
val eval = new TestEvaluator(m)
rm(m.millSourcePath)
@@ -48,8 +57,8 @@ object HelloWorldTests extends TestSuite {
}
}
'compileRouter - workspaceTest(HelloWorld) { eval =>
- val Right((result, evalCount)) = eval.apply(HelloWorld.core.compileRouter)
-
+ val eitherResult = eval.apply(HelloWorld.core.compileRouter)
+ val Right((result, evalCount)) = eitherResult
val outputFiles = ls.rec(result.classes.path).filter(_.isFile)
val expectedClassfiles = Seq[RelPath](
RelPath("controllers/ReverseRoutes.scala"),
@@ -73,5 +82,15 @@ object HelloWorldTests extends TestSuite {
assert(unchangedEvalCount == 0)
}
+ 'compileRouter - workspaceTest(HelloWorld, resourcePath = invalidResourcePath) { eval =>
+ val eitherResult = eval.apply(HelloWorld.core.compileRouter)
+ val Left(Failure(message, x)) = eitherResult
+ val expectedMessage = "Unable to compile play routes, compilation error in " +
+ HelloWorld.millSourcePath.toIO.getAbsolutePath + "/core/conf/routes at line 2, column 1: " +
+ "HTTP Verb (GET, POST, ...), include (->), comment (#), or modifier line (+) expected"
+ assert(
+ message == expectedMessage
+ )
+ }
}
}