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.

issue_test.go 2.6KB

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