You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

user_repo_test.go 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package repo_test
  4. import (
  5. "testing"
  6. "code.gitea.io/gitea/models/db"
  7. repo_model "code.gitea.io/gitea/models/repo"
  8. "code.gitea.io/gitea/models/unittest"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestRepoAssignees(t *testing.T) {
  12. assert.NoError(t, unittest.PrepareTestDatabase())
  13. repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2})
  14. users, err := repo_model.GetRepoAssignees(db.DefaultContext, repo2)
  15. assert.NoError(t, err)
  16. assert.Len(t, users, 1)
  17. assert.Equal(t, users[0].ID, int64(2))
  18. repo21 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 21})
  19. users, err = repo_model.GetRepoAssignees(db.DefaultContext, repo21)
  20. assert.NoError(t, err)
  21. assert.Len(t, users, 3)
  22. assert.Equal(t, users[0].ID, int64(15))
  23. assert.Equal(t, users[1].ID, int64(18))
  24. assert.Equal(t, users[2].ID, int64(16))
  25. }
  26. func TestRepoGetReviewers(t *testing.T) {
  27. assert.NoError(t, unittest.PrepareTestDatabase())
  28. // test public repo
  29. repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
  30. ctx := db.DefaultContext
  31. reviewers, err := repo_model.GetReviewers(ctx, repo1, 2, 2)
  32. assert.NoError(t, err)
  33. assert.Len(t, reviewers, 4)
  34. // should include doer if doer is not PR poster.
  35. reviewers, err = repo_model.GetReviewers(ctx, repo1, 11, 2)
  36. assert.NoError(t, err)
  37. assert.Len(t, reviewers, 4)
  38. // should not include PR poster, if PR poster would be otherwise eligible
  39. reviewers, err = repo_model.GetReviewers(ctx, repo1, 11, 4)
  40. assert.NoError(t, err)
  41. assert.Len(t, reviewers, 3)
  42. // test private user repo
  43. repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2})
  44. reviewers, err = repo_model.GetReviewers(ctx, repo2, 2, 4)
  45. assert.NoError(t, err)
  46. assert.Len(t, reviewers, 1)
  47. assert.EqualValues(t, reviewers[0].ID, 2)
  48. // test private org repo
  49. repo3 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3})
  50. reviewers, err = repo_model.GetReviewers(ctx, repo3, 2, 1)
  51. assert.NoError(t, err)
  52. assert.Len(t, reviewers, 2)
  53. reviewers, err = repo_model.GetReviewers(ctx, repo3, 2, 2)
  54. assert.NoError(t, err)
  55. assert.Len(t, reviewers, 1)
  56. }