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.

branches_test.go 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package models
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. "code.gitea.io/gitea/models/unittest"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestAddDeletedBranch(t *testing.T) {
  12. assert.NoError(t, unittest.PrepareTestDatabase())
  13. repo := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  14. firstBranch := db.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  15. assert.Error(t, repo.AddDeletedBranch(firstBranch.Name, firstBranch.Commit, firstBranch.DeletedByID))
  16. assert.NoError(t, repo.AddDeletedBranch("test", "5655464564554545466464656", int64(1)))
  17. }
  18. func TestGetDeletedBranches(t *testing.T) {
  19. assert.NoError(t, unittest.PrepareTestDatabase())
  20. repo := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  21. branches, err := repo.GetDeletedBranches()
  22. assert.NoError(t, err)
  23. assert.Len(t, branches, 2)
  24. }
  25. func TestGetDeletedBranch(t *testing.T) {
  26. assert.NoError(t, unittest.PrepareTestDatabase())
  27. firstBranch := db.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  28. assert.NotNil(t, getDeletedBranch(t, firstBranch))
  29. }
  30. func TestDeletedBranchLoadUser(t *testing.T) {
  31. assert.NoError(t, unittest.PrepareTestDatabase())
  32. firstBranch := db.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  33. secondBranch := db.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 2}).(*DeletedBranch)
  34. branch := getDeletedBranch(t, firstBranch)
  35. assert.Nil(t, branch.DeletedBy)
  36. branch.LoadUser()
  37. assert.NotNil(t, branch.DeletedBy)
  38. assert.Equal(t, "user1", branch.DeletedBy.Name)
  39. branch = getDeletedBranch(t, secondBranch)
  40. assert.Nil(t, branch.DeletedBy)
  41. branch.LoadUser()
  42. assert.NotNil(t, branch.DeletedBy)
  43. assert.Equal(t, "Ghost", branch.DeletedBy.Name)
  44. }
  45. func TestRemoveDeletedBranch(t *testing.T) {
  46. assert.NoError(t, unittest.PrepareTestDatabase())
  47. repo := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  48. firstBranch := db.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  49. err := repo.RemoveDeletedBranch(1)
  50. assert.NoError(t, err)
  51. db.AssertNotExistsBean(t, firstBranch)
  52. db.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 2})
  53. }
  54. func getDeletedBranch(t *testing.T, branch *DeletedBranch) *DeletedBranch {
  55. repo := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  56. deletedBranch, err := repo.GetDeletedBranchByID(branch.ID)
  57. assert.NoError(t, err)
  58. assert.Equal(t, branch.ID, deletedBranch.ID)
  59. assert.Equal(t, branch.Name, deletedBranch.Name)
  60. assert.Equal(t, branch.Commit, deletedBranch.Commit)
  61. assert.Equal(t, branch.DeletedByID, deletedBranch.DeletedByID)
  62. return deletedBranch
  63. }
  64. func TestFindRenamedBranch(t *testing.T) {
  65. assert.NoError(t, unittest.PrepareTestDatabase())
  66. branch, exist, err := FindRenamedBranch(1, "dev")
  67. assert.NoError(t, err)
  68. assert.Equal(t, true, exist)
  69. assert.Equal(t, "master", branch.To)
  70. _, exist, err = FindRenamedBranch(1, "unknow")
  71. assert.NoError(t, err)
  72. assert.Equal(t, false, exist)
  73. }
  74. func TestRenameBranch(t *testing.T) {
  75. assert.NoError(t, unittest.PrepareTestDatabase())
  76. repo1 := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  77. _isDefault := false
  78. err := UpdateProtectBranch(repo1, &ProtectedBranch{
  79. RepoID: repo1.ID,
  80. BranchName: "master",
  81. }, WhitelistOptions{})
  82. assert.NoError(t, err)
  83. assert.NoError(t, repo1.RenameBranch("master", "main", func(isDefault bool) error {
  84. _isDefault = isDefault
  85. return nil
  86. }))
  87. assert.Equal(t, true, _isDefault)
  88. repo1 = db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  89. assert.Equal(t, "main", repo1.DefaultBranch)
  90. pull := db.AssertExistsAndLoadBean(t, &PullRequest{ID: 1}).(*PullRequest) // merged
  91. assert.Equal(t, "master", pull.BaseBranch)
  92. pull = db.AssertExistsAndLoadBean(t, &PullRequest{ID: 2}).(*PullRequest) // open
  93. assert.Equal(t, "main", pull.BaseBranch)
  94. renamedBranch := db.AssertExistsAndLoadBean(t, &RenamedBranch{ID: 2}).(*RenamedBranch)
  95. assert.Equal(t, "master", renamedBranch.From)
  96. assert.Equal(t, "main", renamedBranch.To)
  97. assert.Equal(t, int64(1), renamedBranch.RepoID)
  98. db.AssertExistsAndLoadBean(t, &ProtectedBranch{
  99. RepoID: repo1.ID,
  100. BranchName: "main",
  101. })
  102. }
  103. func TestOnlyGetDeletedBranchOnCorrectRepo(t *testing.T) {
  104. assert.NoError(t, unittest.PrepareTestDatabase())
  105. // Get deletedBranch with ID of 1 on repo with ID 2.
  106. // This should return a nil branch as this deleted branch
  107. // is actually on repo with ID 1.
  108. repo2 := db.AssertExistsAndLoadBean(t, &Repository{ID: 2}).(*Repository)
  109. deletedBranch, err := repo2.GetDeletedBranchByID(1)
  110. // Expect no error, and the returned branch is nil.
  111. assert.NoError(t, err)
  112. assert.Nil(t, deletedBranch)
  113. // Now get the deletedBranch with ID of 1 on repo with ID 1.
  114. // This should return the deletedBranch.
  115. repo1 := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  116. deletedBranch, err = repo1.GetDeletedBranchByID(1)
  117. // Expect no error, and the returned branch to be not nil.
  118. assert.NoError(t, err)
  119. assert.NotNil(t, deletedBranch)
  120. }