CatgirlIntelligenceAgency/code/common/db/build.gradle
Viktor Lofgren 708a741960 (test) Clean up test usage of migrations
Several tests were manually running migrations in a large copy-paste blob of code.  This makes the test less useful as it's possible to break the code while keeping the tests green by introducing a new migration that never gets run in the tests, and it's also difficult to reason about what the tests are doing.

A new test helper library is introduced with a TestMigrationLoader that can both run Flyway migrations, or load specific migrations in the cases a specific set of migrations need to be loaded.   Existing tests are migrated to use the new code.
2024-01-12 15:55:50 +01:00

68 lines
1.4 KiB
Groovy

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.flywaydb:flyway-mysql:10.0.1'
}
}
plugins {
id 'java'
id 'jvm-test-suite'
id "org.flywaydb.flyway" version "10.0.1"
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
configurations {
flywayMigration.extendsFrom(implementation)
}
dependencies {
implementation project(':code:common:model')
implementation libs.bundles.slf4j
implementation libs.guice
implementation libs.bundles.gson
implementation libs.notnull
implementation libs.commons.lang3
implementation libs.trove
implementation libs.rxjava
implementation libs.bundles.mariadb
flywayMigration 'org.flywaydb:flyway-mysql:10.0.1'
testImplementation libs.bundles.slf4j.test
testImplementation libs.bundles.junit
testImplementation libs.mockito
testImplementation platform('org.testcontainers:testcontainers-bom:1.17.4')
testImplementation 'org.testcontainers:mariadb:1.17.4'
testImplementation 'org.testcontainers:junit-jupiter:1.17.4'
testImplementation project(':code:libraries:test-helpers')
}
flyway {
url = 'jdbc:mariadb://localhost:3306/WMSA_prod'
user = 'wmsa'
password = 'wmsa'
schemas = ['WMSA_prod']
configurations = [ 'compileClasspath', 'flywayMigration' ]
locations = ['filesystem:src/main/resources/db/migration']
cleanDisabled = false
}