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.1KB

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