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.

review_test.go 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package models
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestGetReviewByID(t *testing.T) {
  7. assert.NoError(t, PrepareTestDatabase())
  8. review, err := GetReviewByID(1)
  9. assert.NoError(t, err)
  10. assert.Equal(t, "Demo Review", review.Content)
  11. assert.Equal(t, ReviewTypeApprove, review.Type)
  12. _, err = GetReviewByID(23892)
  13. assert.Error(t, err)
  14. assert.True(t, IsErrReviewNotExist(err), "IsErrReviewNotExist")
  15. }
  16. func TestReview_LoadAttributes(t *testing.T) {
  17. assert.NoError(t, PrepareTestDatabase())
  18. review := AssertExistsAndLoadBean(t, &Review{ID: 1}).(*Review)
  19. assert.NoError(t, review.LoadAttributes())
  20. assert.NotNil(t, review.Issue)
  21. assert.NotNil(t, review.Reviewer)
  22. invalidReview1 := AssertExistsAndLoadBean(t, &Review{ID: 2}).(*Review)
  23. assert.Error(t, invalidReview1.LoadAttributes())
  24. invalidReview2 := AssertExistsAndLoadBean(t, &Review{ID: 3}).(*Review)
  25. assert.Error(t, invalidReview2.LoadAttributes())
  26. }
  27. func TestReview_LoadCodeComments(t *testing.T) {
  28. assert.NoError(t, PrepareTestDatabase())
  29. review := AssertExistsAndLoadBean(t, &Review{ID: 4}).(*Review)
  30. assert.NoError(t, review.LoadAttributes())
  31. assert.NoError(t, review.LoadCodeComments())
  32. assert.Len(t, review.CodeComments, 1)
  33. assert.Equal(t, int64(4), review.CodeComments["README.md"][int64(4)][0].Line)
  34. }
  35. func TestReviewType_Icon(t *testing.T) {
  36. assert.Equal(t, "eye", ReviewTypeApprove.Icon())
  37. assert.Equal(t, "x", ReviewTypeReject.Icon())
  38. assert.Equal(t, "comment", ReviewTypeComment.Icon())
  39. assert.Equal(t, "comment", ReviewTypeUnknown.Icon())
  40. assert.Equal(t, "comment", ReviewType(4).Icon())
  41. }
  42. func TestFindReviews(t *testing.T) {
  43. assert.NoError(t, PrepareTestDatabase())
  44. reviews, err := FindReviews(FindReviewOptions{
  45. Type: ReviewTypeApprove,
  46. IssueID: 2,
  47. ReviewerID: 1,
  48. })
  49. assert.NoError(t, err)
  50. assert.Len(t, reviews, 1)
  51. assert.Equal(t, "Demo Review", reviews[0].Content)
  52. }
  53. func TestGetCurrentReview(t *testing.T) {
  54. assert.NoError(t, PrepareTestDatabase())
  55. issue := AssertExistsAndLoadBean(t, &Issue{ID: 2}).(*Issue)
  56. user := AssertExistsAndLoadBean(t, &User{ID: 1}).(*User)
  57. review, err := GetCurrentReview(user, issue)
  58. assert.NoError(t, err)
  59. assert.NotNil(t, review)
  60. assert.Equal(t, ReviewTypePending, review.Type)
  61. assert.Equal(t, "Pending Review", review.Content)
  62. user2 := AssertExistsAndLoadBean(t, &User{ID: 7}).(*User)
  63. review2, err := GetCurrentReview(user2, issue)
  64. assert.Error(t, err)
  65. assert.True(t, IsErrReviewNotExist(err))
  66. assert.Nil(t, review2)
  67. }
  68. func TestCreateReview(t *testing.T) {
  69. assert.NoError(t, PrepareTestDatabase())
  70. issue := AssertExistsAndLoadBean(t, &Issue{ID: 2}).(*Issue)
  71. user := AssertExistsAndLoadBean(t, &User{ID: 1}).(*User)
  72. review, err := CreateReview(CreateReviewOptions{
  73. Content: "New Review",
  74. Type: ReviewTypePending,
  75. Issue: issue,
  76. Reviewer: user,
  77. })
  78. assert.NoError(t, err)
  79. assert.Equal(t, "New Review", review.Content)
  80. AssertExistsAndLoadBean(t, &Review{Content: "New Review"})
  81. }
  82. func TestGetReviewersByPullID(t *testing.T) {
  83. assert.NoError(t, PrepareTestDatabase())
  84. issue := AssertExistsAndLoadBean(t, &Issue{ID: 3}).(*Issue)
  85. user2 := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
  86. user3 := AssertExistsAndLoadBean(t, &User{ID: 3}).(*User)
  87. user4 := AssertExistsAndLoadBean(t, &User{ID: 4}).(*User)
  88. expectedReviews := []*PullReviewersWithType{}
  89. expectedReviews = append(expectedReviews, &PullReviewersWithType{
  90. User: *user2,
  91. Type: ReviewTypeReject,
  92. ReviewUpdatedUnix: 946684810,
  93. },
  94. &PullReviewersWithType{
  95. User: *user3,
  96. Type: ReviewTypeReject,
  97. ReviewUpdatedUnix: 946684810,
  98. },
  99. &PullReviewersWithType{
  100. User: *user4,
  101. Type: ReviewTypeApprove,
  102. ReviewUpdatedUnix: 946684810,
  103. })
  104. allReviews, err := GetReviewersByPullID(issue.ID)
  105. assert.NoError(t, err)
  106. assert.Equal(t, expectedReviews, allReviews)
  107. }