1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- // Copyright 2017 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package repo_test
-
- import (
- "testing"
-
- "code.gitea.io/gitea/models/db"
- repo_model "code.gitea.io/gitea/models/repo"
- "code.gitea.io/gitea/models/unittest"
- user_model "code.gitea.io/gitea/models/user"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestRepoAssignees(t *testing.T) {
- assert.NoError(t, unittest.PrepareTestDatabase())
-
- repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2})
- users, err := repo_model.GetRepoAssignees(db.DefaultContext, repo2)
- assert.NoError(t, err)
- assert.Len(t, users, 1)
- assert.Equal(t, users[0].ID, int64(2))
-
- repo21 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 21})
- users, err = repo_model.GetRepoAssignees(db.DefaultContext, repo21)
- assert.NoError(t, err)
- if assert.Len(t, users, 4) {
- assert.ElementsMatch(t, []int64{10, 15, 16, 18}, []int64{users[0].ID, users[1].ID, users[2].ID, users[3].ID})
- }
-
- // do not return deactivated users
- assert.NoError(t, user_model.UpdateUserCols(db.DefaultContext, &user_model.User{ID: 15, IsActive: false}, "is_active"))
- users, err = repo_model.GetRepoAssignees(db.DefaultContext, repo21)
- assert.NoError(t, err)
- if assert.Len(t, users, 3) {
- assert.NotContains(t, []int64{users[0].ID, users[1].ID, users[2].ID}, 15)
- }
- }
-
- 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 := repo_model.GetReviewers(ctx, repo1, 2, 2)
- assert.NoError(t, err)
- if assert.Len(t, reviewers, 3) {
- assert.ElementsMatch(t, []int64{1, 4, 11}, []int64{reviewers[0].ID, reviewers[1].ID, reviewers[2].ID})
- }
-
- // should include doer if doer is not PR poster.
- reviewers, err = repo_model.GetReviewers(ctx, repo1, 11, 2)
- assert.NoError(t, err)
- assert.Len(t, reviewers, 3)
-
- // should not include PR poster, if PR poster would be otherwise eligible
- reviewers, err = repo_model.GetReviewers(ctx, repo1, 11, 4)
- assert.NoError(t, err)
- assert.Len(t, reviewers, 2)
-
- // test private user repo
- repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2})
-
- reviewers, err = repo_model.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 = repo_model.GetReviewers(ctx, repo3, 2, 1)
- assert.NoError(t, err)
- assert.Len(t, reviewers, 2)
-
- reviewers, err = repo_model.GetReviewers(ctx, repo3, 2, 2)
- assert.NoError(t, err)
- assert.Len(t, reviewers, 1)
- }
|