Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
henrod committed Apr 15, 2019
1 parent db33111 commit 7333573
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
2 changes: 1 addition & 1 deletion api/room_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ func (g *RoomPingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}

if payload.Metadata == nil {
if len(g.App.Forwarders) > 0 && payload.Metadata == nil {
payload.Metadata, err = models.GetRoomMetadata(
g.App.RedisClient.Trace(r.Context()),
room.SchedulerName, room.ID)
Expand Down
63 changes: 62 additions & 1 deletion api/room_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,11 @@ forwarders:
scheduler.Game = game
})

mockRedisTraceWrapper.EXPECT().WithContext(gomock.Any(), mockRedisClient).Return(mockRedisClient)
mockRedisClient.EXPECT().
HGet("scheduler:schedulerName:rooms:roomName", "metadata").
Return(redis.NewStringResult(`{"region": "us"}`, nil))

mockRedisTraceWrapper.EXPECT().WithContext(gomock.Any(), mockRedisClient).Return(mockRedisClient)
mockRedisClient.EXPECT().TxPipeline().Return(mockPipeline)
mockPipeline.EXPECT().HMSet(rKey, map[string]interface{}{
Expand All @@ -297,7 +302,63 @@ forwarders:
}
mockPipeline.EXPECT().Exec()

mockEventForwarder1.EXPECT().Forward(gomock.Any(), fmt.Sprintf("ping%s", strings.Title(status)), gomock.Any(), gomock.Any())
mockEventForwarder1.EXPECT().Forward(gomock.Any(), fmt.Sprintf("ping%s", strings.Title(status)), map[string]interface{}{
"game": game,
"roomId": roomName,
"host": "",
"port": int32(0),
"metadata": map[string]interface{}{
"ipv6Label": "",
"region": "us",
},
}, gomock.Any())

app.Router.ServeHTTP(recorder, request)
Expect(recorder.Code).To(Equal(200))
Expect(recorder.Body.String()).To(Equal(`{"success": true}`))
})

It("forwards room event and metadata", func() {
reader := JSONFor(JSON{
"timestamp": time.Now().Unix(),
"status": status,
"metadata": map[string]interface{}{
"region": "us",
},
})
request, _ = http.NewRequest("PUT", url, reader)

mockDb.EXPECT().Query(gomock.Any(), "SELECT * FROM schedulers WHERE name = ?", namespace).
Do(func(scheduler *models.Scheduler, query string, modifier string) {
scheduler.YAML = yamlStr
scheduler.Game = game
})

mockRedisTraceWrapper.EXPECT().WithContext(gomock.Any(), mockRedisClient).Return(mockRedisClient)
mockRedisClient.EXPECT().TxPipeline().Return(mockPipeline)
mockPipeline.EXPECT().HMSet(rKey, map[string]interface{}{
"lastPing": time.Now().Unix(),
"status": status,
"metadata": `{"region":"us"}`,
})
mockPipeline.EXPECT().ZAdd(pKey, gomock.Any())
mockPipeline.EXPECT().ZRem(lKey, roomName)
mockPipeline.EXPECT().SAdd(sKey, rKey)
for _, key := range allStatusKeys {
mockPipeline.EXPECT().SRem(key, rKey)
}
mockPipeline.EXPECT().Exec()

mockEventForwarder1.EXPECT().Forward(gomock.Any(), fmt.Sprintf("ping%s", strings.Title(status)), map[string]interface{}{
"game": game,
"roomId": roomName,
"host": "",
"port": int32(0),
"metadata": map[string]interface{}{
"ipv6Label": "",
"region": "us",
},
}, gomock.Any())

app.Router.ServeHTTP(recorder, request)
Expect(recorder.Code).To(Equal(200))
Expand Down

0 comments on commit 7333573

Please sign in to comment.