mirror of https://github.com/go-gitea/gitea.git
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.
85 lines
2.5 KiB
85 lines
2.5 KiB
// Copyright 2020 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package issue |
|
|
|
import ( |
|
"testing" |
|
|
|
issues_model "code.gitea.io/gitea/models/issues" |
|
repo_model "code.gitea.io/gitea/models/repo" |
|
"code.gitea.io/gitea/models/unittest" |
|
user_model "code.gitea.io/gitea/models/user" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestGetRefEndNamesAndURLs(t *testing.T) { |
|
issues := []*issues_model.Issue{ |
|
{ID: 1, Ref: "refs/heads/branch1"}, |
|
{ID: 2, Ref: "refs/tags/tag1"}, |
|
{ID: 3, Ref: "c0ffee"}, |
|
} |
|
repoLink := "/foo/bar" |
|
|
|
endNames, urls := GetRefEndNamesAndURLs(issues, repoLink) |
|
assert.Equal(t, map[int64]string{1: "branch1", 2: "tag1", 3: "c0ffee"}, endNames) |
|
assert.Equal(t, map[int64]string{ |
|
1: repoLink + "/src/branch/branch1", |
|
2: repoLink + "/src/tag/tag1", |
|
3: repoLink + "/src/commit/c0ffee", |
|
}, urls) |
|
} |
|
|
|
func TestIssue_DeleteIssue(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
issueIDs, err := issues_model.GetIssueIDsByRepoID(t.Context(), 1) |
|
assert.NoError(t, err) |
|
assert.Len(t, issueIDs, 5) |
|
|
|
issue := &issues_model.Issue{ |
|
RepoID: 1, |
|
ID: issueIDs[2], |
|
} |
|
|
|
_, err = deleteIssue(t.Context(), issue) |
|
assert.NoError(t, err) |
|
issueIDs, err = issues_model.GetIssueIDsByRepoID(t.Context(), 1) |
|
assert.NoError(t, err) |
|
assert.Len(t, issueIDs, 4) |
|
|
|
// check attachment removal |
|
attachments, err := repo_model.GetAttachmentsByIssueID(t.Context(), 4) |
|
assert.NoError(t, err) |
|
issue, err = issues_model.GetIssueByID(t.Context(), 4) |
|
assert.NoError(t, err) |
|
_, err = deleteIssue(t.Context(), issue) |
|
assert.NoError(t, err) |
|
assert.Len(t, attachments, 2) |
|
for i := range attachments { |
|
attachment, err := repo_model.GetAttachmentByUUID(t.Context(), attachments[i].UUID) |
|
assert.Error(t, err) |
|
assert.True(t, repo_model.IsErrAttachmentNotExist(err)) |
|
assert.Nil(t, attachment) |
|
} |
|
|
|
// check issue dependencies |
|
user, err := user_model.GetUserByID(t.Context(), 1) |
|
assert.NoError(t, err) |
|
issue1, err := issues_model.GetIssueByID(t.Context(), 1) |
|
assert.NoError(t, err) |
|
issue2, err := issues_model.GetIssueByID(t.Context(), 2) |
|
assert.NoError(t, err) |
|
err = issues_model.CreateIssueDependency(t.Context(), user, issue1, issue2) |
|
assert.NoError(t, err) |
|
left, err := issues_model.IssueNoDependenciesLeft(t.Context(), issue1) |
|
assert.NoError(t, err) |
|
assert.False(t, left) |
|
|
|
_, err = deleteIssue(t.Context(), issue2) |
|
assert.NoError(t, err) |
|
left, err = issues_model.IssueNoDependenciesLeft(t.Context(), issue1) |
|
assert.NoError(t, err) |
|
assert.True(t, left) |
|
}
|
|
|