diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9cded30..04abcb6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,9 @@ jobs: apps: mill - name: Test - run: mill --no-server --jobs 0 test + run: | + mill --no-server --jobs 1 __.downloadMillTestVersion + mill --no-server --jobs 0 _.test publish: runs-on: ubuntu-latest diff --git a/build.sc b/build.sc index c1b36c3..a5ab133 100644 --- a/build.sc +++ b/build.sc @@ -47,7 +47,12 @@ trait CommonModule extends ScalaModule with CiReleaseModule with ScalafmtModule ) } -object jsdeps extends CommonModule +object jsdeps extends CommonModule { + object test extends MillIntegrationTestModule { + override def millTestVersion = millVersion() + override def pluginsUnderTest = Seq(jsdeps) + } +} //noinspection ScalaUnusedSymbol object millbundler extends CommonModule { @@ -55,9 +60,9 @@ object millbundler extends CommonModule { override def ivyDeps = Agg( ivy"com.lihaoyi::geny:1.0.0" ) -} -object test extends MillIntegrationTestModule { - override def millTestVersion = millVersion() - override def pluginsUnderTest = Seq(millbundler) + object test extends MillIntegrationTestModule { + override def millTestVersion = millVersion() + override def pluginsUnderTest = Seq(millbundler) + } } diff --git a/jsdeps/src/io/github/nafg/millbundler/jsdeps/ScalaJSNpmModule.scala b/jsdeps/src/io/github/nafg/millbundler/jsdeps/ScalaJSNpmModule.scala index 747d0a6..8dc5217 100644 --- a/jsdeps/src/io/github/nafg/millbundler/jsdeps/ScalaJSNpmModule.scala +++ b/jsdeps/src/io/github/nafg/millbundler/jsdeps/ScalaJSNpmModule.scala @@ -2,6 +2,8 @@ package io.github.nafg.millbundler.jsdeps import mill._ import mill.modules.Jvm +import mill.scalajslib.TestScalaJSModule +import mill.scalajslib.api.JsEnvConfig //noinspection ScalaUnusedSymbol,ScalaWeakerAccess trait ScalaJSNpmModule extends ScalaJSDepsModule { @@ -40,3 +42,16 @@ trait ScalaJSNpmModule extends ScalaJSDepsModule { PathRef(dir) } } +//noinspection ScalaWeakerAccess +object ScalaJSNpmModule { + trait Test extends TestScalaJSModule with ScalaJSNpmModule { + override def jsEnvConfig = T { + val path = npmInstall().path / "node_modules" + println("path: " + path) + os.proc("ls", "react-phone-number-input") + .call(cwd = path, stdout = os.Inherit) + JsEnvConfig.NodeJs(env = Map("NODE_PATH" -> path.toString)) + } + } + +} diff --git a/jsdeps/test/src/simple/build.sc b/jsdeps/test/src/simple/build.sc new file mode 100644 index 0000000..c130b46 --- /dev/null +++ b/jsdeps/test/src/simple/build.sc @@ -0,0 +1,34 @@ +import $exec.plugins + +import io.github.nafg.millbundler.jsdeps.ScalaJSNpmModule +import mill.scalajslib.api.ModuleKind +import mill.scalalib.{DepSyntax, TestModule} +import mill.scalajslib.api.JsEnvConfig + + +object main extends ScalaJSNpmModule { + override def scalaVersion = "2.13.10" + override def scalaJSVersion = "1.10.1" + + override def ivyDeps = + Agg( + ivy"io.github.nafg.scalajs-facades::react-phone-number-input_3::0.16.0" + ) + + object test + extends Tests + with ScalaJSNpmModule.Test + with TestModule.Munit { + + override def moduleKind = ModuleKind.CommonJSModule + + override def ivyDeps = + super.ivyDeps() ++ Agg(ivy"org.scalameta::munit::0.7.29") + } +} + +def verify = T { + val logger = T.ctx().log + val (_, testResults) = main.test.test()() + assert(testResults.nonEmpty, "No tests found") +} diff --git a/test/src/rollup/main/test/src/Tests.scala b/jsdeps/test/src/simple/main/test/src/Tests.scala similarity index 100% rename from test/src/rollup/main/test/src/Tests.scala rename to jsdeps/test/src/simple/main/test/src/Tests.scala diff --git a/test/src/rollup/build.sc b/millbundler/test/src/rollup/build.sc similarity index 100% rename from test/src/rollup/build.sc rename to millbundler/test/src/rollup/build.sc diff --git a/test/src/webpack-simple/main/test/src/Tests.scala b/millbundler/test/src/rollup/main/test/src/Tests.scala similarity index 100% rename from test/src/webpack-simple/main/test/src/Tests.scala rename to millbundler/test/src/rollup/main/test/src/Tests.scala diff --git a/test/src/webpack-simple/build.sc b/millbundler/test/src/webpack-simple/build.sc similarity index 100% rename from test/src/webpack-simple/build.sc rename to millbundler/test/src/webpack-simple/build.sc diff --git a/millbundler/test/src/webpack-simple/main/test/src/Tests.scala b/millbundler/test/src/webpack-simple/main/test/src/Tests.scala new file mode 100644 index 0000000..8a98932 --- /dev/null +++ b/millbundler/test/src/webpack-simple/main/test/src/Tests.scala @@ -0,0 +1,11 @@ +import io.github.nafg.scalajs.facades.reactphonenumberinput._ +import munit.Assertions._ +import scala.scalajs.js +import scala.scalajs.js.annotation._ + + +class Tests extends munit.FunSuite { + test("ReactPhoneNumberInput") { + assert(!js.isUndefined(ReactPhoneNumberInput.raw)) + } +}