@@ -86,7 +86,7 @@ describe('LeaderboardRepository 통합 테스트', () => {
8686 } ) ;
8787
8888 describe ( 'getUserLeaderboard' , ( ) => {
89- it ( '사용자 통계 배열로 이루어진 리더보드를 반환해야 한다' , async ( ) => {
89+ it ( '사용자 통계 배열로 이루어진 리더보드를 반환해야 하며, 통계 값은 음수가 아니어야 한다' , async ( ) => {
9090 const result = await repo . getUserLeaderboard (
9191 DEFAULT_PARAMS . USER_SORT ,
9292 DEFAULT_PARAMS . DATE_RANGE ,
@@ -98,14 +98,14 @@ describe('LeaderboardRepository 통합 테스트', () => {
9898 if ( ! isEnoughData ( result , 1 , '사용자 리더보드 반환값' ) ) return ;
9999
100100 result . forEach ( ( leaderboardUser ) => {
101- expect ( typeof leaderboardUser . id ) . toEqual ( 'string ') ;
102- expect ( typeof leaderboardUser . email ) . toEqual ( 'string ') ;
103- expect ( typeof leaderboardUser . total_views ) . toEqual ( 'number ') ;
104- expect ( typeof leaderboardUser . total_likes ) . toEqual ( 'number ') ;
105- expect ( typeof leaderboardUser . total_posts ) . toEqual ( 'number ') ;
106- expect ( typeof leaderboardUser . view_diff ) . toEqual ( 'number ') ;
107- expect ( typeof leaderboardUser . like_diff ) . toEqual ( 'number ') ;
108- expect ( typeof leaderboardUser . post_diff ) . toEqual ( 'number ') ;
101+ expect ( leaderboardUser ) . toHaveProperty ( 'id ') ;
102+ expect ( leaderboardUser ) . toHaveProperty ( 'email ') ;
103+ expect ( leaderboardUser ) . toHaveProperty ( 'total_views ') ;
104+ expect ( leaderboardUser ) . toHaveProperty ( 'total_likes ') ;
105+ expect ( leaderboardUser ) . toHaveProperty ( 'total_posts ') ;
106+ expect ( leaderboardUser ) . toHaveProperty ( 'view_diff ') ;
107+ expect ( leaderboardUser ) . toHaveProperty ( 'like_diff ') ;
108+ expect ( leaderboardUser ) . toHaveProperty ( 'post_diff ') ;
109109 } ) ;
110110 } ) ;
111111
@@ -119,12 +119,12 @@ describe('LeaderboardRepository 통합 테스트', () => {
119119 if ( ! isEnoughData ( result , 1 , '사용자 리더보드 반환값' ) ) return ;
120120
121121 result . forEach ( ( leaderboardUser ) => {
122- expect ( leaderboardUser . total_views ) . toBeGreaterThanOrEqual ( 0 ) ;
123- expect ( leaderboardUser . total_likes ) . toBeGreaterThanOrEqual ( 0 ) ;
124- expect ( leaderboardUser . total_posts ) . toBeGreaterThanOrEqual ( 0 ) ;
125- expect ( leaderboardUser . view_diff ) . toBeGreaterThanOrEqual ( 0 ) ;
126- expect ( leaderboardUser . like_diff ) . toBeGreaterThanOrEqual ( 0 ) ;
127- expect ( leaderboardUser . post_diff ) . toBeGreaterThanOrEqual ( 0 ) ;
122+ expect ( Number ( leaderboardUser . total_views ) ) . toBeGreaterThanOrEqual ( 0 ) ;
123+ expect ( Number ( leaderboardUser . total_likes ) ) . toBeGreaterThanOrEqual ( 0 ) ;
124+ expect ( Number ( leaderboardUser . total_posts ) ) . toBeGreaterThanOrEqual ( 0 ) ;
125+ expect ( Number ( leaderboardUser . view_diff ) ) . toBeGreaterThanOrEqual ( 0 ) ;
126+ expect ( Number ( leaderboardUser . like_diff ) ) . toBeGreaterThanOrEqual ( 0 ) ;
127+ expect ( Number ( leaderboardUser . post_diff ) ) . toBeGreaterThanOrEqual ( 0 ) ;
128128 } ) ;
129129 } ) ;
130130
@@ -144,7 +144,7 @@ describe('LeaderboardRepository 통합 테스트', () => {
144144
145145 const isSorted = result . every ( ( leaderboardUser , idx ) => {
146146 if ( idx === 0 ) return true ;
147- return leaderboardUser [ field ] <= result [ idx - 1 ] [ field ] ;
147+ return Number ( leaderboardUser [ field ] ) <= Number ( result [ idx - 1 ] [ field ] ) ;
148148 } ) ;
149149
150150 expect ( isSorted ) . toBe ( true ) ;
@@ -233,14 +233,14 @@ describe('LeaderboardRepository 통합 테스트', () => {
233233 if ( ! isEnoughData ( result , 1 , '게시물 리더보드 반환값' ) ) return ;
234234
235235 result . forEach ( ( leaderboardPost ) => {
236- expect ( typeof leaderboardPost . id ) . toEqual ( 'string ') ;
237- expect ( typeof leaderboardPost . title ) . toEqual ( 'string ') ;
238- expect ( typeof leaderboardPost . slug ) . toEqual ( 'string ') ;
239- expect ( typeof leaderboardPost . total_views ) . toEqual ( 'number ') ;
240- expect ( typeof leaderboardPost . total_likes ) . toEqual ( 'number ') ;
241- expect ( typeof leaderboardPost . view_diff ) . toEqual ( 'number ') ;
242- expect ( typeof leaderboardPost . like_diff ) . toEqual ( 'number ') ;
243- expect ( typeof leaderboardPost . released_at ) . toEqual ( 'object ') ;
236+ expect ( leaderboardPost ) . toHaveProperty ( 'id ') ;
237+ expect ( leaderboardPost ) . toHaveProperty ( 'title ') ;
238+ expect ( leaderboardPost ) . toHaveProperty ( 'slug ') ;
239+ expect ( leaderboardPost ) . toHaveProperty ( 'total_views ') ;
240+ expect ( leaderboardPost ) . toHaveProperty ( 'total_likes ') ;
241+ expect ( leaderboardPost ) . toHaveProperty ( 'view_diff ') ;
242+ expect ( leaderboardPost ) . toHaveProperty ( 'like_diff ') ;
243+ expect ( leaderboardPost ) . toHaveProperty ( 'released_at ') ;
244244 } ) ;
245245 } ) ;
246246
@@ -254,10 +254,10 @@ describe('LeaderboardRepository 통합 테스트', () => {
254254 if ( ! isEnoughData ( result , 1 , '게시물 리더보드 반환값' ) ) return ;
255255
256256 result . forEach ( ( leaderboardPost ) => {
257- expect ( leaderboardPost . total_views ) . toBeGreaterThanOrEqual ( 0 ) ;
258- expect ( leaderboardPost . total_likes ) . toBeGreaterThanOrEqual ( 0 ) ;
259- expect ( leaderboardPost . view_diff ) . toBeGreaterThanOrEqual ( 0 ) ;
260- expect ( leaderboardPost . like_diff ) . toBeGreaterThanOrEqual ( 0 ) ;
257+ expect ( Number ( leaderboardPost . total_views ) ) . toBeGreaterThanOrEqual ( 0 ) ;
258+ expect ( Number ( leaderboardPost . total_likes ) ) . toBeGreaterThanOrEqual ( 0 ) ;
259+ expect ( Number ( leaderboardPost . view_diff ) ) . toBeGreaterThanOrEqual ( 0 ) ;
260+ expect ( Number ( leaderboardPost . like_diff ) ) . toBeGreaterThanOrEqual ( 0 ) ;
261261 } ) ;
262262 } ) ;
263263
@@ -276,7 +276,7 @@ describe('LeaderboardRepository 통합 테스트', () => {
276276
277277 const isSorted = result . every ( ( leaderboardPost , idx ) => {
278278 if ( idx === 0 ) return true ;
279- return leaderboardPost [ field ] <= result [ idx - 1 ] [ field ] ;
279+ return Number ( leaderboardPost [ field ] ) <= Number ( result [ idx - 1 ] [ field ] ) ;
280280 } ) ;
281281
282282 expect ( isSorted ) . toBe ( true ) ;
0 commit comments