Skip to content

Commit 449ed5b

Browse files
committed
Add test for PullRequestCodeOwnersReview and PullRequestCodeOwnersReviewSpecialCommits
1 parent 5b0fb1e commit 449ed5b

File tree

2 files changed

+38
-3
lines changed

2 files changed

+38
-3
lines changed

services/issue/pull.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ func PullRequestCodeOwnersReviewSpecialCommits(ctx context.Context, pr *issues_m
6565
if err := pr.LoadBaseRepo(ctx); err != nil {
6666
return nil, err
6767
}
68+
pr.Issue.Repo = pr.BaseRepo
6869

6970
if pr.BaseRepo.IsFork {
7071
return nil, nil

tests/integration/pull_review_test.go

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ func TestPullView_CodeOwner(t *testing.T) {
6767
{
6868
Operation: "create",
6969
TreePath: "CODEOWNERS",
70-
ContentReader: strings.NewReader("README.md @user5\n"),
70+
ContentReader: strings.NewReader("README.md @user5\nuser8-file.md @user8\n"),
7171
},
7272
},
7373
})
7474
assert.NoError(t, err)
7575

7676
t.Run("First Pull Request", func(t *testing.T) {
7777
// create a new branch to prepare for pull request
78-
_, err = files_service.ChangeRepoFiles(db.DefaultContext, repo, user2, &files_service.ChangeRepoFilesOptions{
78+
resp1, err := files_service.ChangeRepoFiles(db.DefaultContext, repo, user2, &files_service.ChangeRepoFilesOptions{
7979
NewBranch: "codeowner-basebranch",
8080
Files: []*files_service.ChangeRepoFile{
8181
{
@@ -95,7 +95,36 @@ func TestPullView_CodeOwner(t *testing.T) {
9595
unittest.AssertExistsAndLoadBean(t, &issues_model.Review{IssueID: pr.IssueID, Type: issues_model.ReviewTypeRequest, ReviewerID: 5})
9696
assert.NoError(t, pr.LoadIssue(db.DefaultContext))
9797

98-
err := issue_service.ChangeTitle(db.DefaultContext, pr.Issue, user2, "[WIP] Test Pull Request")
98+
reviewNotifiers, err := issue_service.PullRequestCodeOwnersReview(db.DefaultContext, pr)
99+
assert.NoError(t, err)
100+
assert.Len(t, reviewNotifiers, 1)
101+
assert.EqualValues(t, 5, reviewNotifiers[0].Reviewer.ID)
102+
103+
// update the file on the pr branch
104+
resp2, err := files_service.ChangeRepoFiles(db.DefaultContext, repo, user2, &files_service.ChangeRepoFilesOptions{
105+
OldBranch: "codeowner-basebranch",
106+
Files: []*files_service.ChangeRepoFile{
107+
{
108+
Operation: "create",
109+
TreePath: "user8-file.md",
110+
ContentReader: strings.NewReader("# This is a new project2\n"),
111+
},
112+
},
113+
})
114+
assert.NoError(t, err)
115+
116+
reviewNotifiers, err = issue_service.PullRequestCodeOwnersReview(db.DefaultContext, pr)
117+
assert.NoError(t, err)
118+
assert.Len(t, reviewNotifiers, 2)
119+
assert.EqualValues(t, 5, reviewNotifiers[0].Reviewer.ID)
120+
assert.EqualValues(t, 8, reviewNotifiers[1].Reviewer.ID)
121+
122+
reviewNotifiers, err = issue_service.PullRequestCodeOwnersReviewSpecialCommits(db.DefaultContext, pr, resp1.Commit.SHA, resp2.Commit.SHA)
123+
assert.NoError(t, err)
124+
assert.Len(t, reviewNotifiers, 1)
125+
assert.EqualValues(t, 8, reviewNotifiers[0].Reviewer.ID)
126+
127+
err = issue_service.ChangeTitle(db.DefaultContext, pr.Issue, user2, "[WIP] Test Pull Request")
99128
assert.NoError(t, err)
100129
prUpdated1 := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: pr.ID})
101130
assert.NoError(t, prUpdated1.LoadIssue(db.DefaultContext))
@@ -140,6 +169,11 @@ func TestPullView_CodeOwner(t *testing.T) {
140169

141170
pr := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{BaseRepoID: repo.ID, HeadBranch: "codeowner-basebranch2"})
142171
unittest.AssertExistsAndLoadBean(t, &issues_model.Review{IssueID: pr.IssueID, Type: issues_model.ReviewTypeRequest, ReviewerID: 8})
172+
173+
reviewNotifiers, err := issue_service.PullRequestCodeOwnersReview(db.DefaultContext, pr)
174+
assert.NoError(t, err)
175+
assert.Len(t, reviewNotifiers, 1)
176+
assert.EqualValues(t, 8, reviewNotifiers[0].Reviewer.ID)
143177
})
144178

145179
t.Run("Forked Repo Pull Request", func(t *testing.T) {

0 commit comments

Comments
 (0)