gitea源码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // Copyright 2020 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package issue
  4. import (
  5. "testing"
  6. issues_model "code.gitea.io/gitea/models/issues"
  7. repo_model "code.gitea.io/gitea/models/repo"
  8. "code.gitea.io/gitea/models/unittest"
  9. user_model "code.gitea.io/gitea/models/user"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestGetRefEndNamesAndURLs(t *testing.T) {
  13. issues := []*issues_model.Issue{
  14. {ID: 1, Ref: "refs/heads/branch1"},
  15. {ID: 2, Ref: "refs/tags/tag1"},
  16. {ID: 3, Ref: "c0ffee"},
  17. }
  18. repoLink := "/foo/bar"
  19. endNames, urls := GetRefEndNamesAndURLs(issues, repoLink)
  20. assert.Equal(t, map[int64]string{1: "branch1", 2: "tag1", 3: "c0ffee"}, endNames)
  21. assert.Equal(t, map[int64]string{
  22. 1: repoLink + "/src/branch/branch1",
  23. 2: repoLink + "/src/tag/tag1",
  24. 3: repoLink + "/src/commit/c0ffee",
  25. }, urls)
  26. }
  27. func TestIssue_DeleteIssue(t *testing.T) {
  28. assert.NoError(t, unittest.PrepareTestDatabase())
  29. issueIDs, err := issues_model.GetIssueIDsByRepoID(t.Context(), 1)
  30. assert.NoError(t, err)
  31. assert.Len(t, issueIDs, 5)
  32. issue := &issues_model.Issue{
  33. RepoID: 1,
  34. ID: issueIDs[2],
  35. }
  36. _, err = deleteIssue(t.Context(), issue)
  37. assert.NoError(t, err)
  38. issueIDs, err = issues_model.GetIssueIDsByRepoID(t.Context(), 1)
  39. assert.NoError(t, err)
  40. assert.Len(t, issueIDs, 4)
  41. // check attachment removal
  42. attachments, err := repo_model.GetAttachmentsByIssueID(t.Context(), 4)
  43. assert.NoError(t, err)
  44. issue, err = issues_model.GetIssueByID(t.Context(), 4)
  45. assert.NoError(t, err)
  46. _, err = deleteIssue(t.Context(), issue)
  47. assert.NoError(t, err)
  48. assert.Len(t, attachments, 2)
  49. for i := range attachments {
  50. attachment, err := repo_model.GetAttachmentByUUID(t.Context(), attachments[i].UUID)
  51. assert.Error(t, err)
  52. assert.True(t, repo_model.IsErrAttachmentNotExist(err))
  53. assert.Nil(t, attachment)
  54. }
  55. // check issue dependencies
  56. user, err := user_model.GetUserByID(t.Context(), 1)
  57. assert.NoError(t, err)
  58. issue1, err := issues_model.GetIssueByID(t.Context(), 1)
  59. assert.NoError(t, err)
  60. issue2, err := issues_model.GetIssueByID(t.Context(), 2)
  61. assert.NoError(t, err)
  62. err = issues_model.CreateIssueDependency(t.Context(), user, issue1, issue2)
  63. assert.NoError(t, err)
  64. left, err := issues_model.IssueNoDependenciesLeft(t.Context(), issue1)
  65. assert.NoError(t, err)
  66. assert.False(t, left)
  67. _, err = deleteIssue(t.Context(), issue2)
  68. assert.NoError(t, err)
  69. left, err = issues_model.IssueNoDependenciesLeft(t.Context(), issue1)
  70. assert.NoError(t, err)
  71. assert.True(t, left)
  72. }