// Copyright 2024 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package pull_test import ( "testing" "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unittest" pull_service "code.gitea.io/gitea/services/pull" "github.com/stretchr/testify/assert" ) func TestRepoGetReviewers(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) // test public repo repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) ctx := db.DefaultContext reviewers, err := pull_service.GetReviewers(ctx, repo1, 2, 0) assert.NoError(t, err) if assert.Len(t, reviewers, 1) { assert.ElementsMatch(t, []int64{2}, []int64{reviewers[0].ID}) } // should not include doer and remove the poster reviewers, err = pull_service.GetReviewers(ctx, repo1, 11, 2) assert.NoError(t, err) assert.Len(t, reviewers, 0) // should not include PR poster, if PR poster would be otherwise eligible reviewers, err = pull_service.GetReviewers(ctx, repo1, 11, 4) assert.NoError(t, err) assert.Len(t, reviewers, 1) // test private user repo repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2}) reviewers, err = pull_service.GetReviewers(ctx, repo2, 2, 4) assert.NoError(t, err) assert.Len(t, reviewers, 1) assert.EqualValues(t, reviewers[0].ID, 2) // test private org repo repo3 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3}) reviewers, err = pull_service.GetReviewers(ctx, repo3, 2, 1) assert.NoError(t, err) assert.Len(t, reviewers, 2) reviewers, err = pull_service.GetReviewers(ctx, repo3, 2, 2) assert.NoError(t, err) assert.Len(t, reviewers, 1) } func TestRepoGetReviewerTeams(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2}) teams, err := pull_service.GetReviewerTeams(db.DefaultContext, repo2) assert.NoError(t, err) assert.Empty(t, teams) repo3 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3}) teams, err = pull_service.GetReviewerTeams(db.DefaultContext, repo3) assert.NoError(t, err) assert.Len(t, teams, 2) }