2019-10-19 12:48:29 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2019-10-19 12:48:29 +03:00
package issue
import (
"testing"
2023-09-16 17:39:12 +03:00
"code.gitea.io/gitea/models/db"
2022-06-13 12:37:59 +03:00
issues_model "code.gitea.io/gitea/models/issues"
2021-11-12 17:36:47 +03:00
"code.gitea.io/gitea/models/unittest"
2021-11-24 12:49:20 +03:00
user_model "code.gitea.io/gitea/models/user"
2021-11-17 15:34:35 +03:00
2019-10-19 12:48:29 +03:00
"github.com/stretchr/testify/assert"
)
func TestIssue_AddLabels ( t * testing . T ) {
2022-01-20 20:46:10 +03:00
tests := [ ] struct {
2019-10-19 12:48:29 +03:00
issueID int64
labelIDs [ ] int64
doerID int64
} {
{ 1 , [ ] int64 { 1 , 2 } , 2 } , // non-pull-request
{ 1 , [ ] int64 { } , 2 } , // non-pull-request, empty
{ 2 , [ ] int64 { 1 , 2 } , 2 } , // pull-request
{ 2 , [ ] int64 { } , 1 } , // pull-request, empty
}
for _ , test := range tests {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-08-16 05:22:25 +03:00
issue := unittest . AssertExistsAndLoadBean ( t , & issues_model . Issue { ID : test . issueID } )
2022-06-13 12:37:59 +03:00
labels := make ( [ ] * issues_model . Label , len ( test . labelIDs ) )
2019-10-19 12:48:29 +03:00
for i , labelID := range test . labelIDs {
2022-08-16 05:22:25 +03:00
labels [ i ] = unittest . AssertExistsAndLoadBean ( t , & issues_model . Label { ID : labelID } )
2019-10-19 12:48:29 +03:00
}
2022-08-16 05:22:25 +03:00
doer := unittest . AssertExistsAndLoadBean ( t , & user_model . User { ID : test . doerID } )
2023-09-16 17:39:12 +03:00
assert . NoError ( t , AddLabels ( db . DefaultContext , issue , doer , labels ) )
2019-10-19 12:48:29 +03:00
for _ , labelID := range test . labelIDs {
2022-06-13 12:37:59 +03:00
unittest . AssertExistsAndLoadBean ( t , & issues_model . IssueLabel { IssueID : test . issueID , LabelID : labelID } )
2019-10-19 12:48:29 +03:00
}
}
}
func TestIssue_AddLabel ( t * testing . T ) {
2022-01-20 20:46:10 +03:00
tests := [ ] struct {
2019-10-19 12:48:29 +03:00
issueID int64
labelID int64
doerID int64
} {
{ 1 , 2 , 2 } , // non-pull-request, not-already-added label
{ 1 , 1 , 2 } , // non-pull-request, already-added label
{ 2 , 2 , 2 } , // pull-request, not-already-added label
{ 2 , 1 , 2 } , // pull-request, already-added label
}
for _ , test := range tests {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-08-16 05:22:25 +03:00
issue := unittest . AssertExistsAndLoadBean ( t , & issues_model . Issue { ID : test . issueID } )
label := unittest . AssertExistsAndLoadBean ( t , & issues_model . Label { ID : test . labelID } )
doer := unittest . AssertExistsAndLoadBean ( t , & user_model . User { ID : test . doerID } )
2023-09-16 17:39:12 +03:00
assert . NoError ( t , AddLabel ( db . DefaultContext , issue , doer , label ) )
2022-06-13 12:37:59 +03:00
unittest . AssertExistsAndLoadBean ( t , & issues_model . IssueLabel { IssueID : test . issueID , LabelID : test . labelID } )
2019-10-19 12:48:29 +03:00
}
}