Skip to content

Commit

Permalink
Apply refactor to SetMembersScore and SetMemberScore
Browse files Browse the repository at this point in the history
  • Loading branch information
Arthur Nogueira Gonçalves committed May 10, 2021
1 parent dc5ffe7 commit 76e01fd
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
23 changes: 23 additions & 0 deletions leaderboard/service/set_member_score_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,29 @@ var _ = Describe("Service SetMemberScore", func() {

})

It("Should not call database GetLeaderboardExpiration and SetLeaderboardExpiration if leaderboard isn't formatted to have an expiration", func() {
expectedMember := &model.Member{
PublicID: "member1",
Score: 1,
PreviousRank: 0,
Rank: 2,
}

mock.EXPECT().SetMembers(gomock.Any(), gomock.Eq(leaderboard), gomock.Eq(databaseMembersToInsert)).Times(1).Return(nil)
mock.EXPECT().GetMembers(
gomock.Any(),
gomock.Eq(leaderboard),
gomock.Eq("desc"),
gomock.Eq(true),
gomock.Eq(databaseMembersToGetRank[0]),
).Return(databaseMembersReturned, nil)

member, err := svc.SetMemberScore(context.Background(), leaderboard, member, score, previousRank, scoreTTL)
Expect(err).NotTo(HaveOccurred())

Expect(member).To(Equal(expectedMember))
})

It("Should set leaderboard expiration if GetLeaderboardExpiration return TTLNotFoundError", func() {
leaderboardExpiration := fmt.Sprintf("year%d", time.Now().UTC().Year())
expireAt, err := expiration.GetExpireAt(leaderboardExpiration)
Expand Down
43 changes: 43 additions & 0 deletions leaderboard/service/set_members_score_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,49 @@ var _ = Describe("Service SetMembersScore", func() {

})

It("Should not call database GetLeaderboardExpiration and SetLeaderboardExpiration if leaderboard isn't formatted to have an expiration", func() {
members := []*model.Member{
{
PublicID: "member1",
Score: 1,
},
{
PublicID: "member2",
Score: 2,
},
}

expectedMembers := []*model.Member{
{
PublicID: "member1",
Score: 1,
PreviousRank: 0,
Rank: 2,
},
{
PublicID: "member2",
Score: 2,
PreviousRank: 0,
Rank: 1,
},
}

mock.EXPECT().SetMembers(gomock.Any(), gomock.Eq(leaderboard), gomock.Eq(databaseMembersToInsert)).Times(1).Return(nil)
mock.EXPECT().GetMembers(
gomock.Any(),
gomock.Eq(leaderboard),
gomock.Eq("desc"),
gomock.Eq(true),
gomock.Eq(databaseMembersToGetRank[0]),
gomock.Eq(databaseMembersToGetRank[1]),
).Return(databaseMembersReturned, nil)

err := svc.SetMembersScore(context.Background(), leaderboard, members, previousRank, scoreTTL)
Expect(err).NotTo(HaveOccurred())

Expect(members).To(Equal(expectedMembers))
})

It("Should set leaderboard expiration if GetLeaderboardExpiration return TTLNotFoundError", func() {
leaderboardExpiration := fmt.Sprintf("year%d", time.Now().UTC().Year())
expireAt, err := expiration.GetExpireAt(leaderboardExpiration)
Expand Down

0 comments on commit 76e01fd

Please sign in to comment.