game stats shows planes and population

This commit is contained in:
Ilia Denisov
2026-04-26 21:12:51 +02:00
parent fe829285a6
commit b4591cabd4
11 changed files with 84 additions and 22 deletions
+3 -1
View File
@@ -99,7 +99,9 @@ func stateResponse(s game.State) rest.StateResponse {
}
for i := range s.Players {
result.Players[i].ID = s.Players[i].ID
result.Players[i].Name = s.Players[i].Name
result.Players[i].RaceName = s.Players[i].RaceName
result.Players[i].Planets = s.Players[i].Planets
result.Players[i].Population = s.Players[i].Population.F()
result.Players[i].Extinct = s.Players[i].Extinct
}
return *result
+2 -2
View File
@@ -9,14 +9,14 @@ import (
)
func InitHandler(c *gin.Context, executor CommandExecutor) {
var init rest.Init
var init rest.InitRequest
if errorResponse(c, c.ShouldBindJSON(&init)) {
return
}
races := make([]string, len(init.Races))
for i := range init.Races {
races[i] = init.Races[i].Name
races[i] = init.Races[i].RaceName
}
s, err := executor.GenerateGame(races)
+4 -4
View File
@@ -68,12 +68,12 @@ func limitTestingRouter() *gin.Engine {
return r
}
func generateInitRequest(races int) rest.Init {
request := rest.Init{
Races: make([]rest.Race, races),
func generateInitRequest(races int) rest.InitRequest {
request := rest.InitRequest{
Races: make([]rest.InitRace, races),
}
for i := range request.Races {
request.Races[i] = rest.Race{Name: raceName(i)}
request.Races[i] = rest.InitRace{RaceName: raceName(i)}
}
return request
}
+3 -1
View File
@@ -50,7 +50,9 @@ func TestGetStatus(t *testing.T) {
assert.Len(t, stateResponse.Players, 10)
for i := range stateResponse.Players {
assert.NoError(t, uuid.Validate(stateResponse.Players[i].ID.String()))
assert.Equal(t, raceName(i), stateResponse.Players[i].Name)
assert.Equal(t, raceName(i), stateResponse.Players[i].RaceName)
assert.Equal(t, uint(3), stateResponse.Players[i].Planets)
assert.Equal(t, 2000., stateResponse.Players[i].Population)
assert.False(t, stateResponse.Players[i].Extinct)
}
}
+21
View File
@@ -39,6 +39,13 @@ func TestGetTurn(t *testing.T) {
assert.NotEqual(t, uuid.Nil, uuid.MustParse(initResponse.ID.String()))
assert.Equal(t, uint(0), initResponse.Turn)
assert.Equal(t, uint(0), initResponse.Stage)
for i := range initResponse.Players {
assert.NoError(t, uuid.Validate(initResponse.Players[i].ID.String()))
assert.Equal(t, raceName(i), initResponse.Players[i].RaceName)
assert.Equal(t, uint(3), initResponse.Players[i].Planets)
assert.Equal(t, 2000., initResponse.Players[i].Population)
assert.False(t, initResponse.Players[i].Extinct)
}
// generate next turn
@@ -54,6 +61,13 @@ func TestGetTurn(t *testing.T) {
assert.Equal(t, initResponse.ID, turnResponse.ID)
assert.Equal(t, uint(1), turnResponse.Turn)
assert.Equal(t, uint(0), turnResponse.Stage)
for i := range turnResponse.Players {
assert.NoError(t, uuid.Validate(turnResponse.Players[i].ID.String()))
assert.Equal(t, raceName(i), turnResponse.Players[i].RaceName)
assert.Equal(t, uint(3), turnResponse.Players[i].Planets)
assert.Equal(t, 2000., turnResponse.Players[i].Population)
assert.False(t, turnResponse.Players[i].Extinct)
}
// validate status
@@ -67,4 +81,11 @@ func TestGetTurn(t *testing.T) {
assert.Equal(t, initResponse.ID, stateResponse.ID)
assert.Equal(t, uint(1), stateResponse.Turn)
assert.Equal(t, uint(0), stateResponse.Stage)
for i := range stateResponse.Players {
assert.NoError(t, uuid.Validate(stateResponse.Players[i].ID.String()))
assert.Equal(t, raceName(i), stateResponse.Players[i].RaceName)
assert.Equal(t, uint(3), stateResponse.Players[i].Planets)
assert.Equal(t, 2000., stateResponse.Players[i].Population)
assert.False(t, stateResponse.Players[i].Extinct)
}
}