summaryrefslogtreecommitdiff
path: root/contrib/flyway/test/src/BuildTest.scala
blob: 9f51f72c163c35938c97672fa234ce6a126c66b6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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)
    }
  }
}