2020-11-21 01:29:09 +03:00
// 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 {
2021-03-05 18:17:32 +03:00
name string
2020-11-21 01:29:09 +03:00
beforeCombined [ ] * models . Comment
afterCombined [ ] * models . Comment
} {
{
2021-03-05 18:17:32 +03:00
name : "kase 1" ,
2020-11-21 01:29:09 +03:00
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 ,
} ,
} ,
} ,
{
2021-03-05 18:17:32 +03:00
name : "kase 2" ,
2020-11-21 01:29:09 +03:00
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 ,
} ,
} ,
} ,
{
2021-03-05 18:17:32 +03:00
name : "kase 3" ,
2020-11-21 01:29:09 +03:00
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 ,
} ,
} ,
} ,
{
2021-03-05 18:17:32 +03:00
name : "kase 4" ,
2020-11-21 01:29:09 +03:00
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" ,
} ,
} ,
} ,
} ,
2021-03-05 18:17:32 +03:00
{
name : "kase 5" ,
beforeCombined : [ ] * models . Comment {
{
Type : models . CommentTypeLabel ,
PosterID : 1 ,
Content : "1" ,
Label : & models . Label {
Name : "kind/bug" ,
} ,
CreatedUnix : 0 ,
} ,
{
Type : models . CommentTypeComment ,
PosterID : 2 ,
Content : "testtest" ,
CreatedUnix : 0 ,
} ,
{
Type : models . CommentTypeLabel ,
PosterID : 1 ,
Content : "" ,
Label : & models . Label {
Name : "kind/bug" ,
} ,
CreatedUnix : 0 ,
} ,
} ,
afterCombined : [ ] * models . Comment {
{
Type : models . CommentTypeLabel ,
PosterID : 1 ,
Content : "1" ,
Label : & models . Label {
Name : "kind/bug" ,
} ,
AddedLabels : [ ] * models . Label {
{
Name : "kind/bug" ,
} ,
} ,
CreatedUnix : 0 ,
} ,
{
Type : models . CommentTypeComment ,
PosterID : 2 ,
Content : "testtest" ,
CreatedUnix : 0 ,
} ,
{
Type : models . CommentTypeLabel ,
PosterID : 1 ,
Content : "" ,
RemovedLabels : [ ] * models . Label {
{
Name : "kind/bug" ,
} ,
} ,
Label : & models . Label {
Name : "kind/bug" ,
} ,
CreatedUnix : 0 ,
} ,
} ,
} ,
2020-11-21 01:29:09 +03:00
}
for _ , kase := range kases {
2021-03-05 18:17:32 +03:00
t . Run ( kase . name , func ( t * testing . T ) {
var issue = models . Issue {
Comments : kase . beforeCombined ,
}
combineLabelComments ( & issue )
assert . EqualValues ( t , kase . afterCombined , issue . Comments )
} )
2020-11-21 01:29:09 +03:00
}
}