From 9236fa3ff1e52e6be1a934fbfd2cce6d441b85fb5fed9e3aaa3fa1ec73fe3b60 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Tue, 18 Feb 2025 18:14:17 +0100 Subject: [PATCH] check stale reviews --- workflow-pr/pr_test.go | 48 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/workflow-pr/pr_test.go b/workflow-pr/pr_test.go index 687fc33..219726c 100644 --- a/workflow-pr/pr_test.go +++ b/workflow-pr/pr_test.go @@ -284,6 +284,50 @@ func TestPRAssignReviewers(t *testing.T) { }, expectedReviewerCall: [2][]string{{"user1", "autogits_obs_staging_bot"}, {}}, }, + { + name: "Reviews are done", + config: common.AutogitConfig{ + GitProjectName: "repo", + Organization: "org", + Branch: "main", + Reviewers: []string{"-user1", "user2"}, + }, + pkgReviews: []*models.PullReview{{State: common.ReviewStateApproved, User: &models.User{UserName: "user2"}}}, + prjReviews: []*models.PullReview{ + { + State: common.ReviewStateRequestChanges, + User: &models.User{UserName: "user1"}, + }, + { + State: common.ReviewStateRequestReview, + User: &models.User{UserName: "autogits_obs_staging_bot"}, + }, + }, + expectedReviewerCall: [2][]string{{}, {}}, + }, + { + name: "Stale review is not done, re-request it", + config: common.AutogitConfig{ + GitProjectName: "repo", + Organization: "org", + Branch: "main", + Reviewers: []string{"-user1", "user2"}, + }, + pkgReviews: []*models.PullReview{{State: common.ReviewStateApproved, User: &models.User{UserName: "user2"}}}, + prjReviews: []*models.PullReview{ + { + State: common.ReviewStateRequestChanges, + User: &models.User{UserName: "user1"}, + Stale: true, + }, + { + State: common.ReviewStateRequestReview, + Stale: true, + User: &models.User{UserName: "autogits_obs_staging_bot"}, + }, + }, + expectedReviewerCall: [2][]string{{"user1", "autogits_obs_staging_bot"}, {}}, + }, } for _, test := range tests { @@ -301,7 +345,7 @@ func TestPRAssignReviewers(t *testing.T) { Head: &models.PRBranchInfo{}, Index: 1, }, nil) - review_mock.EXPECT().GetPullRequestReviews("other", "pkgrepo", int64(1)).Return([]*models.PullReview{}, nil) + review_mock.EXPECT().GetPullRequestReviews("other", "pkgrepo", int64(1)).Return(test.pkgReviews, nil) pr_mock.EXPECT().GetAssociatedPrjGitPR("org", "repo", "other", "pkgrepo", int64(1)).Return(&models.PullRequest{ Body: fmt.Sprintf(common.PrPattern, "other", "pkgrepo", 1), User: &models.User{UserName: "bot1"}, @@ -310,7 +354,7 @@ func TestPRAssignReviewers(t *testing.T) { Head: &models.PRBranchInfo{}, Index: 42, }, nil) - review_mock.EXPECT().GetPullRequestReviews("org", "repo", int64(42)).Return([]*models.PullReview{}, nil) + review_mock.EXPECT().GetPullRequestReviews("org", "repo", int64(42)).Return(test.prjReviews, nil) prs, _ := FetchPRSet(pr_mock, "other", "pkgrepo", int64(1), &test.config) if len(prs.prs) != 2 {