|
1 | 1 | package org.scalasteward.core.edit
|
2 | 2 |
|
| 3 | +import cats.data.NonEmptyList |
3 | 4 | import cats.effect.unsafe.implicits.global
|
4 | 5 | import munit.FunSuite
|
5 | 6 | import org.scalasteward.core.TestInstances.dummyRepoCache
|
6 | 7 | import org.scalasteward.core.TestSyntax._
|
7 |
| -import org.scalasteward.core.data.{Repo, RepoData, Update} |
| 8 | +import org.scalasteward.core.data.{CrossDependency, GroupId, Repo, RepoData, Update, Version} |
8 | 9 | import org.scalasteward.core.mock.MockContext.context._
|
9 | 10 | import org.scalasteward.core.mock.MockState
|
10 | 11 | import org.scalasteward.core.repoconfig.RepoConfig
|
@@ -931,6 +932,37 @@ class RewriteTest extends FunSuite {
|
931 | 932 | runApplyUpdate(update, original, expected)
|
932 | 933 | }
|
933 | 934 |
|
| 935 | + test("duplicate updates should be successful") { |
| 936 | + val dependency = "com.pauldijou".g % "jwt-play-json".a % "5.0.0" |
| 937 | + |
| 938 | + val artifactId = Update.ForArtifactId( |
| 939 | + CrossDependency(dependency), |
| 940 | + newerVersions = NonEmptyList.of(Version("9.2.0")), |
| 941 | + newerGroupId = Some(GroupId("com.github.jwt-scala")), |
| 942 | + newerArtifactId = Some("jwt-play-json") |
| 943 | + ) |
| 944 | + val duplicatedUpdates = Update.ForGroupId(NonEmptyList.of(artifactId, artifactId)) |
| 945 | + val buildSbtContent = |
| 946 | + """ |
| 947 | + | lazy val root = (project in file(".")) |
| 948 | + | .settings( |
| 949 | + | scalafmtOnCompile := true, |
| 950 | + | scalaVersion := scala213, |
| 951 | + | libraryDependencies ++= Seq( |
| 952 | + | "com.pauldijou" %% "jwt-play-json" % "5.0.0", // JWT parsing |
| 953 | + | "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test |
| 954 | + | ), |
| 955 | + | crossScalaVersions := supportedScalaVersions |
| 956 | + | ) |
| 957 | + |""".stripMargin |
| 958 | + val original = Map("build.sbt" -> buildSbtContent) |
| 959 | + val expectedSbtContent = buildSbtContent |
| 960 | + .replaceAll("com.pauldijou", "com.github.jwt-scala") |
| 961 | + .replaceAll("5.0.0", "9.2.0") |
| 962 | + val expected = Map("build.sbt" -> expectedSbtContent) |
| 963 | + runApplyUpdate(duplicatedUpdates, original, expected) |
| 964 | + } |
| 965 | + |
934 | 966 | private def runApplyUpdate(
|
935 | 967 | update: Update.Single,
|
936 | 968 | files: Map[String, String],
|
|
0 commit comments