Git with a cup of tea, painless self-hosted git service Mirror for internal git.with.parts use https://git.with.parts
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.
gitea/routers/repo/issue_test.go

253 lines
4.7 KiB

// Copyright 2020 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package repo
import (
"testing"
"code.gitea.io/gitea/models"
"github.com/stretchr/testify/assert"
)
func TestCombineLabelComments(t *testing.T) {
var kases = []struct {
beforeCombined []*models.Comment
afterCombined []*models.Comment
}{
{
beforeCombined: []*models.Comment{
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
Label: &models.Label{
Name: "kind/bug",
},
CreatedUnix: 0,
},
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "",
Label: &models.Label{
Name: "kind/bug",
},
CreatedUnix: 0,
},
{
Type: models.CommentTypeComment,
PosterID: 1,
Content: "test",
CreatedUnix: 0,
},
},
afterCombined: []*models.Comment{
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
CreatedUnix: 0,
AddedLabels: []*models.Label{
{
Name: "kind/bug",
},
},
RemovedLabels: []*models.Label{
{
Name: "kind/bug",
},
},
Label: &models.Label{
Name: "kind/bug",
},
},
{
Type: models.CommentTypeComment,
PosterID: 1,
Content: "test",
CreatedUnix: 0,
},
},
},
{
beforeCombined: []*models.Comment{
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
Label: &models.Label{
Name: "kind/bug",
},
CreatedUnix: 0,
},
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "",
Label: &models.Label{
Name: "kind/bug",
},
CreatedUnix: 70,
},
{
Type: models.CommentTypeComment,
PosterID: 1,
Content: "test",
CreatedUnix: 0,
},
},
afterCombined: []*models.Comment{
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
CreatedUnix: 0,
AddedLabels: []*models.Label{
{
Name: "kind/bug",
},
},
Label: &models.Label{
Name: "kind/bug",
},
},
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "",
CreatedUnix: 70,
RemovedLabels: []*models.Label{
{
Name: "kind/bug",
},
},
Label: &models.Label{
Name: "kind/bug",
},
},
{
Type: models.CommentTypeComment,
PosterID: 1,
Content: "test",
CreatedUnix: 0,
},
},
},
{
beforeCombined: []*models.Comment{
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
Label: &models.Label{
Name: "kind/bug",
},
CreatedUnix: 0,
},
{
Type: models.CommentTypeLabel,
PosterID: 2,
Content: "",
Label: &models.Label{
Name: "kind/bug",
},
CreatedUnix: 0,
},
{
Type: models.CommentTypeComment,
PosterID: 1,
Content: "test",
CreatedUnix: 0,
},
},
afterCombined: []*models.Comment{
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
CreatedUnix: 0,
AddedLabels: []*models.Label{
{
Name: "kind/bug",
},
},
Label: &models.Label{
Name: "kind/bug",
},
},
{
Type: models.CommentTypeLabel,
PosterID: 2,
Content: "",
CreatedUnix: 0,
RemovedLabels: []*models.Label{
{
Name: "kind/bug",
},
},
Label: &models.Label{
Name: "kind/bug",
},
},
{
Type: models.CommentTypeComment,
PosterID: 1,
Content: "test",
CreatedUnix: 0,
},
},
},
{
beforeCombined: []*models.Comment{
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
Label: &models.Label{
Name: "kind/bug",
},
CreatedUnix: 0,
},
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
Label: &models.Label{
Name: "kind/backport",
},
CreatedUnix: 10,
},
},
afterCombined: []*models.Comment{
{
Type: models.CommentTypeLabel,
PosterID: 1,
Content: "1",
CreatedUnix: 10,
AddedLabels: []*models.Label{
{
Name: "kind/bug",
},
{
Name: "kind/backport",
},
},
Label: &models.Label{
Name: "kind/bug",
},
},
},
},
}
for _, kase := range kases {
var issue = models.Issue{
Comments: kase.beforeCombined,
}
combineLabelComments(&issue)
assert.EqualValues(t, kase.afterCombined, issue.Comments)
}
}