Skip to content

Commit

Permalink
test: add more test
Browse files Browse the repository at this point in the history
  • Loading branch information
dujiajun committed Sep 20, 2024
1 parent 524522d commit 0988657
Show file tree
Hide file tree
Showing 6 changed files with 99 additions and 2 deletions.
3 changes: 3 additions & 0 deletions handler/review.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/gin-gonic/gin"

"jcourse_go/middleware"
"jcourse_go/model/converter"
"jcourse_go/model/dto"
"jcourse_go/model/model"
"jcourse_go/service"
Expand Down Expand Up @@ -52,6 +53,8 @@ func GetReviewListHandler(c *gin.Context) {
return
}

converter.RemoveReviewsUserInfo(reviews, true)

response := dto.ReviewListResponse{
Page: request.Page,
PageSize: request.PageSize,
Expand Down
4 changes: 2 additions & 2 deletions model/converter/course.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ func ConvertOfferedCourseFromPO(po po.OfferedCoursePO) model.OfferedCourse {

func ConvertOfferedCoursesFromPOs(pos []po.OfferedCoursePO) []model.OfferedCourse {
res := make([]model.OfferedCourse, 0, len(pos))
for _, po := range pos {
res = append(res, ConvertOfferedCourseFromPO(po))
for _, p := range pos {
res = append(res, ConvertOfferedCourseFromPO(p))
}
return res
}
Expand Down
15 changes: 15 additions & 0 deletions model/converter/review.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,21 @@ func ConvertReviewFromPO(po po.ReviewPO) model.Review {
}
}

func RemoveReviewUserInfo(review *model.Review, hideUser bool) {
if review == nil {
return
}
if hideUser && review.IsAnonymous {
review.User = model.UserMinimal{}
}
}

func RemoveReviewsUserInfo(reviews []model.Review, hideUser bool) {
for i := range reviews {
RemoveReviewUserInfo(&reviews[i], hideUser)
}
}

func PackReviewWithCourse(review *model.Review, course model.CourseMinimal) {
review.Course = course
}
Expand Down
43 changes: 43 additions & 0 deletions model/converter/review_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package converter

import (
"testing"

"github.com/stretchr/testify/assert"

"jcourse_go/model/model"
)

func TestRemoveReviewUserInfo(t *testing.T) {
hides := []bool{true, false, true, false}
expected := []int64{0, 1, 1, 1}
user := model.UserMinimal{ID: 1}
reviews := []model.Review{{
User: user,
IsAnonymous: true,
}, {
User: user,
IsAnonymous: true,
}, {
User: user,
IsAnonymous: false,
}, {
User: user,
IsAnonymous: false,
}}
for i := range reviews {
r := reviews[i]
hide := hides[i]
RemoveReviewUserInfo(&r, hide)
assert.Equal(t, expected[i], r.User.ID)
}
}

func TestRemoveReviewsUserInfo(t *testing.T) {
reviews := []model.Review{{
User: model.UserMinimal{ID: 1},
IsAnonymous: true,
}}
RemoveReviewsUserInfo(reviews, true)
assert.Equal(t, int64(0), reviews[0].User.ID)
}
20 changes: 20 additions & 0 deletions model/model/rating_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package model

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestRatingInfo_Calc(t *testing.T) {
rating := &RatingInfo{
RatingDist: []RatingInfoDistItem{
{Count: 1, Rating: 1},
{Count: 2, Rating: 2},
{Count: 5, Rating: 5},
},
}
rating.Calc()
assert.Equal(t, int64(8), rating.Count)
assert.Equal(t, 3.75, rating.Average)
}
16 changes: 16 additions & 0 deletions util/conv_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package util

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestStringsToFloat64s(t *testing.T) {
src := []string{"1", "2", "3", "4", "5"}
dst := StringsToFloat64s(src)
assert.Equal(t, len(src), len(dst))
for i := range src {
assert.Equal(t, float64(i+1), dst[i])
}
}

0 comments on commit 0988657

Please sign in to comment.