Skip to content

Commit 8766c3b

Browse files
author
Ender Tunc
committed
add more tests
1 parent c6cde8b commit 8766c3b

File tree

3 files changed

+60
-11
lines changed

3 files changed

+60
-11
lines changed

modules/core/src/main/scala/org/scalasteward/core/application/Cli.scala

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,22 @@ object Cli {
4646
val processTimeout = "process-timeout"
4747
}
4848

49-
implicit val mergeRequestApprovalsConfigArgument: Argument[MergeRequestApprovalRulesCfg] =
49+
implicit val mergeRequestApprovalsCfgArgument: Argument[MergeRequestApprovalRulesCfg] =
5050
Argument.from("approvals_rule_name=required_approvals") { s =>
51-
s.split(":").toList match {
51+
s.trim.split("=").toList match {
5252
case approvalRuleName :: requiredApprovalsAsString :: Nil =>
5353
Try(requiredApprovalsAsString.trim.toInt) match {
5454
case Failure(_) =>
55-
s"[$requiredApprovalsAsString] is not a valid Integer".invalidNel
55+
Validated.invalidNel(s"[$requiredApprovalsAsString] is not a valid Integer")
5656
case Success(requiredApprovals) =>
57-
MergeRequestApprovalRulesCfg(approvalRuleName.trim, requiredApprovals).validNel
57+
Validated.valid(
58+
MergeRequestApprovalRulesCfg(approvalRuleName.trim, requiredApprovals)
59+
)
5860
}
5961
case _ =>
60-
s"The value is expected in the following format: APPROVALS_RULE_NAME:REQUIRED_APPROVALS.".invalidNel
62+
Validated.invalidNel(
63+
"The value is expected in the following format: APPROVALS_RULE_NAME=REQUIRED_APPROVALS"
64+
)
6165
}
6266
}
6367

modules/core/src/test/scala/org/scalasteward/core/application/CliTest.scala

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.scalasteward.core.application
22

33
import better.files.File
4+
import cats.data.Validated
45
import cats.data.Validated.Valid
56
import munit.FunSuite
67
import org.http4s.syntax.literals._
@@ -171,7 +172,7 @@ class CliTest extends FunSuite {
171172
val params = minimumRequiredParams ++ List(
172173
List("--gitlab-merge-when-pipeline-succeeds"),
173174
List("--gitlab-remove-source-branch"),
174-
List("--merge-request-level-approval-rule", "All eligible users:0")
175+
List("--merge-request-level-approval-rule", "All eligible users=0")
175176
)
176177
val Success(StewardUsage.Regular(obtained)) = Cli.parseArgs(params.flatten)
177178

@@ -185,8 +186,8 @@ class CliTest extends FunSuite {
185186

186187
test("parseArgs: multiple Gitlab merge request level approval rule") {
187188
val params = minimumRequiredParams ++ List(
188-
List("--merge-request-level-approval-rule", "All eligible users:1"),
189-
List("--merge-request-level-approval-rule", "Only Main:2")
189+
List("--merge-request-level-approval-rule", "All eligible users=1"),
190+
List("--merge-request-level-approval-rule", "Only Main=2")
190191
)
191192
val Success(StewardUsage.Regular(obtained)) = Cli.parseArgs(params.flatten)
192193

@@ -205,7 +206,7 @@ class CliTest extends FunSuite {
205206

206207
test("parseArgs: only allow one way to define Gitlab required approvals arguments") {
207208
val params = minimumRequiredParams ++ List(
208-
List("--merge-request-level-approval-rule", "All eligible users:0"),
209+
List("--merge-request-level-approval-rule", "All eligible users=0"),
209210
List("--gitlab-required-reviewers", "5")
210211
)
211212
val Error(errorMsg) = Cli.parseArgs(params.flatten)
@@ -229,7 +230,7 @@ class CliTest extends FunSuite {
229230

230231
test("parseArgs: invalid GitLab merge request level approval rule") {
231232
val params = minimumRequiredParams ++ List(
232-
List("--merge-request-level-approval-rule", "All eligible users:-3")
233+
List("--merge-request-level-approval-rule", "All eligible users=-3")
233234
)
234235
val Error(errorMsg) = Cli.parseArgs(params.flatten)
235236

@@ -304,4 +305,21 @@ class CliTest extends FunSuite {
304305
)
305306
assert(error.startsWith("Missing value for option: --azure-repos-organization"))
306307
}
308+
309+
test("mergeRequestApprovalsConfigArgument: without equals sign") {
310+
assertEquals(
311+
Cli.mergeRequestApprovalsCfgArgument.read("only-main"),
312+
Validated.invalidNel(
313+
s"The value is expected in the following format: APPROVALS_RULE_NAME=REQUIRED_APPROVALS"
314+
)
315+
)
316+
}
317+
318+
test("mergeRequestApprovalsConfigArgument: non-integer required approvals") {
319+
val nonIntegerRequiredApprovals = "two"
320+
assertEquals(
321+
Cli.mergeRequestApprovalsCfgArgument.read(s"only-main=$nonIntegerRequiredApprovals"),
322+
Validated.invalidNel(s"[$nonIntegerRequiredApprovals] is not a valid Integer")
323+
)
324+
}
307325
}

modules/core/src/test/scala/org/scalasteward/core/forge/gitlab/GitLabApiAlgTest.scala

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,11 +404,38 @@ class GitLabApiAlgTest extends CatsEffectSuite with Http4sDsl[MockEff] {
404404
assertIO(prOut, expected)
405405
}
406406

407+
test("createPullRequest -- no fail upon list approval rules error") {
408+
val localApp = HttpApp[MockEff] { req =>
409+
(req: @unchecked) match {
410+
case GET -> Root / "projects" / "foo/bar" / "merge_requests" / "150" / "approval_rules" =>
411+
BadRequest(s"Cannot get merge request approval rules")
412+
}
413+
}
414+
415+
val localState = MockState.empty.copy(clientResponses = auth <+> localApp <+> httpApp)
416+
417+
val prOut = gitlabApiAlgWithApprovalRules
418+
.createPullRequest(
419+
Repo("foo", "bar"),
420+
newPRData
421+
)
422+
.runA(localState)
423+
424+
val expected = PullRequestOut(
425+
uri"https://gitlab.com/foo/bar/merge_requests/150",
426+
PullRequestState.Open,
427+
PullRequestNumber(150),
428+
"title"
429+
)
430+
431+
assertIO(prOut, expected)
432+
}
433+
407434
test("createPullRequest -- no fail upon update approval rule error") {
408435
val localApp = HttpApp[MockEff] { req =>
409436
(req: @unchecked) match {
410437
case PUT -> Root / "projects" / "foo/bar" / "merge_requests" / "150" / "approval_rules" / "101" =>
411-
BadRequest(s"Cannot update merge requests approval rules")
438+
BadRequest(s"Cannot update merge request approval rule")
412439
}
413440
}
414441

0 commit comments

Comments
 (0)