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.

label_test.go 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package issue
  4. import (
  5. "testing"
  6. issues_model "code.gitea.io/gitea/models/issues"
  7. "code.gitea.io/gitea/models/unittest"
  8. user_model "code.gitea.io/gitea/models/user"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestIssue_AddLabels(t *testing.T) {
  12. tests := []struct {
  13. issueID int64
  14. labelIDs []int64
  15. doerID int64
  16. }{
  17. {1, []int64{1, 2}, 2}, // non-pull-request
  18. {1, []int64{}, 2}, // non-pull-request, empty
  19. {2, []int64{1, 2}, 2}, // pull-request
  20. {2, []int64{}, 1}, // pull-request, empty
  21. }
  22. for _, test := range tests {
  23. assert.NoError(t, unittest.PrepareTestDatabase())
  24. issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: test.issueID})
  25. labels := make([]*issues_model.Label, len(test.labelIDs))
  26. for i, labelID := range test.labelIDs {
  27. labels[i] = unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: labelID})
  28. }
  29. doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: test.doerID})
  30. assert.NoError(t, AddLabels(issue, doer, labels))
  31. for _, labelID := range test.labelIDs {
  32. unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: test.issueID, LabelID: labelID})
  33. }
  34. }
  35. }
  36. func TestIssue_AddLabel(t *testing.T) {
  37. tests := []struct {
  38. issueID int64
  39. labelID int64
  40. doerID int64
  41. }{
  42. {1, 2, 2}, // non-pull-request, not-already-added label
  43. {1, 1, 2}, // non-pull-request, already-added label
  44. {2, 2, 2}, // pull-request, not-already-added label
  45. {2, 1, 2}, // pull-request, already-added label
  46. }
  47. for _, test := range tests {
  48. assert.NoError(t, unittest.PrepareTestDatabase())
  49. issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: test.issueID})
  50. label := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: test.labelID})
  51. doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: test.doerID})
  52. assert.NoError(t, AddLabel(issue, doer, label))
  53. unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: test.issueID, LabelID: test.labelID})
  54. }
  55. }