bugfixes and refactoring in game-server

This commit is contained in:
2026-10-27 15:55:48 +03:00
parent 3629411030
commit 31ef12b5f2
9 changed files with 732 additions and 66 deletions
+43
View File
@@ -63,6 +63,37 @@ func TestParseGameTokenMissingExp(t *testing.T) {
}
}
func TestParseGameTokenNonPositiveIDs(t *testing.T) {
for _, tc := range [][2]int64{{0, 2}, {-1, 2}, {1, 0}, {1, -5}} {
token := sign(t, &GameClaims{
MatchID: "m1",
Player1ID: tc[0],
Player2ID: tc[1],
RegisteredClaims: jwt.RegisteredClaims{
ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Hour)),
},
}, secret)
if _, err := ParseGameToken(secret, token); err == nil {
t.Fatalf("expected error for non-positive IDs: %+v", tc)
}
}
}
func TestParseGameTokenUnverified(t *testing.T) {
// Works even if expired
token := gameToken(t, secret, time.Now().Add(-time.Hour))
claims, err := ParseGameTokenUnverified(token)
if err != nil {
t.Fatalf("parse unverified: %v", err)
}
if claims.MatchID != "m1" || claims.Player1ID != 1 || claims.Player2ID != 2 {
t.Fatalf("unexpected claims: %+v", claims)
}
if claims.RawToken != token {
t.Fatalf("raw token mismatch: got %q, want %q", claims.RawToken, token)
}
}
func TestParseUserToken(t *testing.T) {
token := sign(t, &UserClaims{
UserID: 42,
@@ -76,3 +107,15 @@ func TestParseUserToken(t *testing.T) {
t.Fatalf("user_id = %d, want 42", claims.UserID)
}
}
func TestParseUserTokenNonPositiveID(t *testing.T) {
for _, id := range []int64{0, -1, -99} {
token := sign(t, &UserClaims{
UserID: id,
RegisteredClaims: jwt.RegisteredClaims{ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Hour))},
}, secret)
if _, err := ParseUserToken(secret, token); err == nil {
t.Fatalf("expected error for user_id = %d", id)
}
}
}