From bb7673afc83bac32b756863c158d7fd4455d6fee Mon Sep 17 00:00:00 2001 From: Nathan Fischer Date: Tue, 9 Apr 2019 17:53:06 -0700 Subject: Tests --- .travis.yml | 5 ++++ ci/test-mill-0.5.sh | 11 +++++++ contrib/flyway/test/src/BuildTest.scala | 53 +++++++++++++++++++++++++++++++++ docs/pages/9 - Contrib Modules.md | 1 + 4 files changed, 70 insertions(+) create mode 100755 ci/test-mill-0.5.sh create mode 100644 contrib/flyway/test/src/BuildTest.scala diff --git a/.travis.yml b/.travis.yml index e7a73872..9ae0ba67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,11 @@ matrix: - stage: build env: CI_SCRIPT=ci/test-mill-0.sh jdk: oraclejdk8 + - stage: build + env: CI_SCRIPT=ci/test-mill-0.5.sh + jdk: oraclejdk8 + addons: + postgresql: "9.6" - stage: build env: CI_SCRIPT=ci/test-mill-1.sh jdk: oraclejdk8 diff --git a/ci/test-mill-0.5.sh b/ci/test-mill-0.5.sh new file mode 100755 index 00000000..20c58c7f --- /dev/null +++ b/ci/test-mill-0.5.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -eux + +# Starting from scratch... +git clean -xdf + +psql -c 'create database test_db;' -U postgres + +# Run tests that use a db +mill -i contrib.flyway.test diff --git a/contrib/flyway/test/src/BuildTest.scala b/contrib/flyway/test/src/BuildTest.scala new file mode 100644 index 00000000..9f51f72c --- /dev/null +++ b/contrib/flyway/test/src/BuildTest.scala @@ -0,0 +1,53 @@ +package mill.contrib.flyway + +import mill._ +import mill.scalalib._ +import mill.util.{TestEvaluator, TestUtil} +import utest.{TestSuite, Tests, assert, _} + +object BuildTest extends TestSuite { + object Build extends TestUtil.BaseModule { + object build extends FlywayModule { + + def resources = T.sources(os.pwd / 'contrib / 'flyway / 'test / 'resources) + + def postgres = ivy"org.postgresql:postgresql:42.2.5" + + def flywayUrl = "jdbc:postgresql:test_db" + def flywayUser = "postgres" + def flywayDriverDeps = Agg(postgres) + } + } + + def tests = Tests { + 'clean - { + val eval = new TestEvaluator(Build) + val Right((_, count)) = eval(Build.build.flywayClean()) + assert(count > 0) + } + + 'migrate - { + val eval = new TestEvaluator(Build) + val Right((res, count)) = eval(Build.build.flywayMigrate()) + assert( + count > 0, + res == 1 + ) + } + + 'migrateAgain - { + val eval = new TestEvaluator(Build) + val Right((res, count)) = eval(Build.build.flywayMigrate()) + assert( + count > 0, + res == 0 + ) + } + + 'info - { + val eval = new TestEvaluator(Build) + val Right((_, count)) = eval(Build.build.flywayInfo()) + assert(count > 0) + } + } +} \ No newline at end of file diff --git a/docs/pages/9 - Contrib Modules.md b/docs/pages/9 - Contrib Modules.md index 7bf29dc2..2ce591d7 100644 --- a/docs/pages/9 - Contrib Modules.md +++ b/docs/pages/9 - Contrib Modules.md @@ -60,6 +60,7 @@ object foo extends JavaModule with FlywayModule { ``` Flyway will look for migration files in `db/migration` in all resources folders by default. +This should work regardless of if you are using a mill or sbt project layout. You can then run common flyway commands like ``` -- cgit v1.2.3