|
| 1 | +package org.scalasteward.core |
| 2 | + |
| 3 | +import better.files._ |
| 4 | +import cats.effect.unsafe.implicits.global |
| 5 | +import munit.FunSuite |
| 6 | +import org.scalasteward.core.application.Config.{ArtifactCfg, RepoConfigCfg, ScalafixCfg} |
| 7 | +import org.scalasteward.core.edit.scalafix.ScalafixMigrationsLoader |
| 8 | +import org.scalasteward.core.mock.MockContext.context.{ |
| 9 | + artifactMigrationsLoader, |
| 10 | + fileAlg, |
| 11 | + logger, |
| 12 | + scalafixMigrationsLoader |
| 13 | +} |
| 14 | +import org.scalasteward.core.mock.MockContext.mockState |
| 15 | +import org.scalasteward.core.repoconfig.RepoConfigLoader |
| 16 | +import org.scalasteward.core.update.artifact.ArtifactMigrationsLoader |
| 17 | + |
| 18 | +import scala.util.{Failure, Success, Try} |
| 19 | + |
| 20 | +class BuiltinConfigFilesTest extends FunSuite { |
| 21 | + private def verifyConfigFile(readThis: String)(block: => Unit): Unit = |
| 22 | + Try { |
| 23 | + block |
| 24 | + } match { |
| 25 | + case Failure(e) => |
| 26 | + fail(s"Invalid format. See ${readThis}", e) |
| 27 | + case Success(_) => // ok |
| 28 | + } |
| 29 | + |
| 30 | + test("migration v2 config is valid") { |
| 31 | + val migrationsContent = |
| 32 | + File("../src/main/resources/artifact-migrations.v2.conf").contentAsString |
| 33 | + val initialState = |
| 34 | + mockState.addUris(ArtifactMigrationsLoader.defaultArtifactMigrationsUrl -> migrationsContent) |
| 35 | + verifyConfigFile("See docs/artifact-migrations.md") { |
| 36 | + val migrations = artifactMigrationsLoader |
| 37 | + .loadAll(ArtifactCfg(List(), disableDefaults = false)) |
| 38 | + .runA(initialState) |
| 39 | + .unsafeRunSync() |
| 40 | + assert(clue(migrations.size) > 1) |
| 41 | + } |
| 42 | + } |
| 43 | + |
| 44 | + test("scalafix migrations config is valid") { |
| 45 | + val migrationsContent = |
| 46 | + File("../src/main/resources/scalafix-migrations.conf").contentAsString |
| 47 | + val initialState = |
| 48 | + mockState.addUris(ScalafixMigrationsLoader.defaultScalafixMigrationsUrl -> migrationsContent) |
| 49 | + verifyConfigFile("docs/scalafix-migrations.md") { |
| 50 | + val migrations = scalafixMigrationsLoader |
| 51 | + .loadAll(ScalafixCfg(List(), disableDefaults = false)) |
| 52 | + .runA(initialState) |
| 53 | + .attempt |
| 54 | + .unsafeRunSync() |
| 55 | + .getOrElse(List.empty) |
| 56 | + assert(clue(migrations).size > 1) |
| 57 | + } |
| 58 | + } |
| 59 | + |
| 60 | + test("default config is valid") { |
| 61 | + val defaultConfigContent = |
| 62 | + File("../src/main/resources/default.scala-steward.conf").contentAsString |
| 63 | + val initialState = |
| 64 | + mockState.addUris(RepoConfigLoader.defaultRepoConfigUrl -> defaultConfigContent) |
| 65 | + verifyConfigFile("docs/repo-specific-configuration.md") { |
| 66 | + val repoConfigLoader = new RepoConfigLoader |
| 67 | + val repoConfig = repoConfigLoader |
| 68 | + .loadGlobalRepoConfig(RepoConfigCfg(List(), disableDefault = false)) |
| 69 | + .runA(initialState) |
| 70 | + .attempt |
| 71 | + .unsafeRunSync() |
| 72 | + .getOrElse(None) |
| 73 | + assert(clue(repoConfig).isDefined) |
| 74 | + } |
| 75 | + } |
| 76 | +} |
0 commit comments