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