code.gitea.io/gitea@v1.21.7/services/issue/label_test.go (about) 1 // Copyright 2017 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 "code.gitea.io/gitea/models/unittest" 12 user_model "code.gitea.io/gitea/models/user" 13 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func TestIssue_AddLabels(t *testing.T) { 18 tests := []struct { 19 issueID int64 20 labelIDs []int64 21 doerID int64 22 }{ 23 {1, []int64{1, 2}, 2}, // non-pull-request 24 {1, []int64{}, 2}, // non-pull-request, empty 25 {2, []int64{1, 2}, 2}, // pull-request 26 {2, []int64{}, 1}, // pull-request, empty 27 } 28 for _, test := range tests { 29 assert.NoError(t, unittest.PrepareTestDatabase()) 30 issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: test.issueID}) 31 labels := make([]*issues_model.Label, len(test.labelIDs)) 32 for i, labelID := range test.labelIDs { 33 labels[i] = unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: labelID}) 34 } 35 doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: test.doerID}) 36 assert.NoError(t, AddLabels(db.DefaultContext, issue, doer, labels)) 37 for _, labelID := range test.labelIDs { 38 unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: test.issueID, LabelID: labelID}) 39 } 40 } 41 } 42 43 func TestIssue_AddLabel(t *testing.T) { 44 tests := []struct { 45 issueID int64 46 labelID int64 47 doerID int64 48 }{ 49 {1, 2, 2}, // non-pull-request, not-already-added label 50 {1, 1, 2}, // non-pull-request, already-added label 51 {2, 2, 2}, // pull-request, not-already-added label 52 {2, 1, 2}, // pull-request, already-added label 53 } 54 for _, test := range tests { 55 assert.NoError(t, unittest.PrepareTestDatabase()) 56 issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: test.issueID}) 57 label := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: test.labelID}) 58 doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: test.doerID}) 59 assert.NoError(t, AddLabel(db.DefaultContext, issue, doer, label)) 60 unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: test.issueID, LabelID: test.labelID}) 61 } 62 }