diff --git a/modules/core/src/main/scala/org/scalasteward/core/repoconfig/PullRequestsConfig.scala b/modules/core/src/main/scala/org/scalasteward/core/repoconfig/PullRequestsConfig.scala index 4dc4b60a4d..037a05adf8 100644 --- a/modules/core/src/main/scala/org/scalasteward/core/repoconfig/PullRequestsConfig.scala +++ b/modules/core/src/main/scala/org/scalasteward/core/repoconfig/PullRequestsConfig.scala @@ -63,7 +63,10 @@ object PullRequestsConfig { grouping = x.grouping |+| y.grouping, includeMatchedLabels = x.includeMatchedLabels.orElse(y.includeMatchedLabels), customLabels = x.customLabels |+| y.customLabels, - draft = (x.draft, y.draft).mapN(_ || _) + draft = { + implicit val booleanOrMonoid: Monoid[Boolean] = Monoid.instance(false, _ || _) + x.draft |+| y.draft + } ) ) } diff --git a/modules/core/src/test/scala/org/scalasteward/core/repoconfig/PullRequestsConfigTest.scala b/modules/core/src/test/scala/org/scalasteward/core/repoconfig/PullRequestsConfigTest.scala index 472275f9ad..c0f72d975c 100644 --- a/modules/core/src/test/scala/org/scalasteward/core/repoconfig/PullRequestsConfigTest.scala +++ b/modules/core/src/test/scala/org/scalasteward/core/repoconfig/PullRequestsConfigTest.scala @@ -1,9 +1,20 @@ package org.scalasteward.core.repoconfig +import cats.implicits.* import cats.kernel.laws.discipline.MonoidTests import munit.DisciplineSuite import org.scalasteward.core.TestInstances.* class PullRequestsConfigTest extends DisciplineSuite { checkAll("Monoid[PullRequestsConfig]", MonoidTests[PullRequestsConfig].monoid) + + test("global config to use 'draft' PRs should be retained after merging with local config") { + val draftTrue = PullRequestsConfig(draft = Some(true)) + val draftUnset = PullRequestsConfig() + val draftFalse = PullRequestsConfig(draft = Some(false)) + + assert((draftTrue |+| draftUnset).draft === Some(true)) + assert((draftTrue |+| draftFalse).draft === Some(true)) + assert((draftUnset |+| draftUnset).draft === None) + } }