75 lines
2.1 KiB
Go
75 lines
2.1 KiB
Go
package gamemanagement
|
|
|
|
import (
|
|
"testing"
|
|
|
|
gamev1 "hyapp.local/api/proto/game/v1"
|
|
)
|
|
|
|
func TestPlatformFromProtoReturnsCallbackSecret(t *testing.T) {
|
|
const secret = "yomi-or-lingxian-secret"
|
|
|
|
got := platformFromProto(&gamev1.GamePlatform{
|
|
PlatformCode: "yomi",
|
|
CallbackSecret: secret,
|
|
CallbackSecretSet: true,
|
|
})
|
|
|
|
if got.CallbackSecret != secret {
|
|
t.Fatalf("CallbackSecret = %q, want %q", got.CallbackSecret, secret)
|
|
}
|
|
if !got.CallbackSecretSet {
|
|
t.Fatal("CallbackSecretSet = false, want true")
|
|
}
|
|
}
|
|
|
|
func TestRoomRPSConfigRequestRequiresFourGiftTiers(t *testing.T) {
|
|
_, err := (roomRPSConfigRequest{
|
|
Status: "active",
|
|
ChallengeTimeoutMS: 600000,
|
|
RevealCountdownMS: 3000,
|
|
StakeGifts: []roomRPSStakeGiftReq{
|
|
{GiftID: 1001, Enabled: true, SortOrder: 1},
|
|
{GiftID: 1002, Enabled: true, SortOrder: 2},
|
|
{GiftID: 1003, Enabled: true, SortOrder: 3},
|
|
},
|
|
}).toProto()
|
|
|
|
if err == nil {
|
|
t.Fatal("toProto must reject room rps config without exactly four gift tiers")
|
|
}
|
|
}
|
|
|
|
func TestRoomRPSConfigRequestDefaultsOpenConfig(t *testing.T) {
|
|
got, err := (roomRPSConfigRequest{
|
|
StakeGifts: []roomRPSStakeGiftReq{
|
|
{GiftID: 1001, Enabled: true},
|
|
{GiftID: 1002, Enabled: true},
|
|
{GiftID: 1003, Enabled: true},
|
|
{GiftID: 1004, Enabled: true},
|
|
},
|
|
}).toProto()
|
|
if err != nil {
|
|
t.Fatalf("toProto failed: %v", err)
|
|
}
|
|
if got.GetStatus() != "active" || got.GetChallengeTimeoutMs() != 600000 || got.GetRevealCountdownMs() != 3000 {
|
|
t.Fatalf("room rps default config mismatch: %+v", got)
|
|
}
|
|
if got.GetStakeGifts()[3].GetSortOrder() != 4 {
|
|
t.Fatalf("default sort order mismatch: %+v", got.GetStakeGifts())
|
|
}
|
|
}
|
|
|
|
func TestRoomRPSChallengeFromProtoKeepsLargeIDsAsStrings(t *testing.T) {
|
|
got := roomRPSChallengeFromProto(&gamev1.RoomRPSChallenge{
|
|
ChallengeId: "rps-1",
|
|
StakeGiftId: 9007199254740993,
|
|
Initiator: &gamev1.RoomRPSPlayer{UserId: 9007199254740995, Gesture: "rock"},
|
|
WinnerUserId: 9007199254740995,
|
|
})
|
|
|
|
if got.StakeGiftID != "9007199254740993" || got.Initiator.UserID != "9007199254740995" || got.WinnerUserID != "9007199254740995" {
|
|
t.Fatalf("large IDs must stay string-safe in admin JSON: %+v", got)
|
|
}
|
|
}
|