From 7fdb5054719a14b9e023515c7e7e8b1c2b2be500 Mon Sep 17 00:00:00 2001 From: Alex Henning Johannessen Date: Fri, 23 Feb 2024 11:20:02 +0000 Subject: [PATCH] add some tests --- .../play/twirl/compiler/test/Helper.scala | 2 +- .../play/twirl/compiler/test/Helper.scala | 2 +- .../twirl/compiler/test/CompilerSpec.scala | 28 +++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/compiler/src/test/scala-2/play/twirl/compiler/test/Helper.scala b/compiler/src/test/scala-2/play/twirl/compiler/test/Helper.scala index afd70e0f..e94f9da2 100644 --- a/compiler/src/test/scala-2/play/twirl/compiler/test/Helper.scala +++ b/compiler/src/test/scala-2/play/twirl/compiler/test/Helper.scala @@ -11,7 +11,7 @@ import play.twirl.parser.TwirlIO object Helper { case class CompilationError(message: String, line: Int, column: Int) extends RuntimeException(message) - class CompilerHelper(sourceDir: File, generatedDir: File, generatedClasses: File) { + class CompilerHelper(sourceDir: File, val generatedDir: File, generatedClasses: File) { import java.net._ import scala.collection.mutable import scala.reflect.internal.util.Position diff --git a/compiler/src/test/scala-3/play/twirl/compiler/test/Helper.scala b/compiler/src/test/scala-3/play/twirl/compiler/test/Helper.scala index 75c96178..c586d253 100644 --- a/compiler/src/test/scala-3/play/twirl/compiler/test/Helper.scala +++ b/compiler/src/test/scala-3/play/twirl/compiler/test/Helper.scala @@ -25,7 +25,7 @@ import play.twirl.parser.TwirlIO object Helper { case class CompilationError(message: String, line: Int, column: Int) extends RuntimeException(message) - class CompilerHelper(sourceDir: File, generatedDir: File, generatedClasses: File) { + class CompilerHelper(sourceDir: File, val generatedDir: File, generatedClasses: File) { import java.net._ import scala.collection.mutable diff --git a/compiler/src/test/scala/play/twirl/compiler/test/CompilerSpec.scala b/compiler/src/test/scala/play/twirl/compiler/test/CompilerSpec.scala index 075af74c..909936d1 100644 --- a/compiler/src/test/scala/play/twirl/compiler/test/CompilerSpec.scala +++ b/compiler/src/test/scala/play/twirl/compiler/test/CompilerSpec.scala @@ -10,6 +10,8 @@ import play.twirl.api.Html import play.twirl.parser.TwirlIO import org.scalatest.matchers.must.Matchers import org.scalatest.wordspec.AnyWordSpec +import TwirlCompiler.ScalaCompat +import scala.io.Source class CompilerSpec extends AnyWordSpec with Matchers { @@ -159,6 +161,12 @@ class CompilerSpec extends AnyWordSpec with Matchers { .static(Array(List(1, 2, 3), List(4, 5, 6))) .toString .trim + + val compat = ScalaCompat(Option(BuildInfo.scalaVersion)) + val generatedFile = helper.generatedDir.toPath.resolve("html/varArgsExistential.template.scala").toFile + val generatedText = Source.fromFile(generatedFile).getLines().mkString("\n") + + generatedText must include(s"list.toIndexedSeq${compat.varargSplicesSyntax}") text must be("123456") } @@ -329,4 +337,24 @@ class CompilerSpec extends AnyWordSpec with Matchers { ) hello.static(args).toString.trim must be("the-key => the-value") } + + "ScalaCompat" should { + + val cases = List( + None -> ": _*", + Some("2.12.18") -> ": _*", + Some("2.13.12") -> ": _*", + Some("3.3.1") -> "*" + ) + + "produce correct varargs splice syntax" in { + + cases.foreach { case (version, expected) => + ScalaCompat(version).varargSplicesSyntax must be(expected) + } + + } + + } + }