gitea源码

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package repository
  4. import (
  5. "testing"
  6. activities_model "code.gitea.io/gitea/models/activities"
  7. "code.gitea.io/gitea/models/db"
  8. repo_model "code.gitea.io/gitea/models/repo"
  9. "code.gitea.io/gitea/models/unit"
  10. "code.gitea.io/gitea/models/unittest"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func TestLinkedRepository(t *testing.T) {
  14. assert.NoError(t, unittest.PrepareTestDatabase())
  15. testCases := []struct {
  16. name string
  17. attachID int64
  18. expectedRepo *repo_model.Repository
  19. expectedUnitType unit.Type
  20. }{
  21. {"LinkedIssue", 1, &repo_model.Repository{ID: 1}, unit.TypeIssues},
  22. {"LinkedComment", 3, &repo_model.Repository{ID: 1}, unit.TypePullRequests},
  23. {"LinkedRelease", 9, &repo_model.Repository{ID: 1}, unit.TypeReleases},
  24. {"Notlinked", 10, nil, -1},
  25. }
  26. for _, tc := range testCases {
  27. t.Run(tc.name, func(t *testing.T) {
  28. attach, err := repo_model.GetAttachmentByID(t.Context(), tc.attachID)
  29. assert.NoError(t, err)
  30. repo, unitType, err := LinkedRepository(t.Context(), attach)
  31. assert.NoError(t, err)
  32. if tc.expectedRepo != nil {
  33. assert.Equal(t, tc.expectedRepo.ID, repo.ID)
  34. }
  35. assert.Equal(t, tc.expectedUnitType, unitType)
  36. })
  37. }
  38. }
  39. func TestUpdateRepositoryVisibilityChanged(t *testing.T) {
  40. assert.NoError(t, unittest.PrepareTestDatabase())
  41. // Get sample repo and change visibility
  42. repo, err := repo_model.GetRepositoryByID(t.Context(), 9)
  43. assert.NoError(t, err)
  44. repo.IsPrivate = true
  45. // Update it
  46. err = updateRepository(t.Context(), repo, true)
  47. assert.NoError(t, err)
  48. // Check visibility of action has become private
  49. act := activities_model.Action{}
  50. _, err = db.GetEngine(t.Context()).ID(3).Get(&act)
  51. assert.NoError(t, err)
  52. assert.True(t, act.IsPrivate)
  53. }
  54. func TestRepository_HasWiki(t *testing.T) {
  55. unittest.PrepareTestEnv(t)
  56. repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
  57. assert.True(t, HasWiki(t.Context(), repo1))
  58. repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2})
  59. assert.False(t, HasWiki(t.Context(), repo2))
  60. }