144 lines
4.2 KiB
Go
144 lines
4.2 KiB
Go
package router
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"chatapp3-golang/internal/service/gameprovider"
|
|
)
|
|
|
|
func TestPublicRoomGameListResponseKeepsLegacyProviderFields(t *testing.T) {
|
|
resp := publicRoomGameListResponse(&gameprovider.RoomGameListResponse{
|
|
Items: []gameprovider.RoomGameListItem{
|
|
{
|
|
ID: 9527,
|
|
GameID: "bs_1046",
|
|
GameType: "BAISHUN",
|
|
Provider: "BAISHUN",
|
|
ProviderGameID: "1046",
|
|
Name: "Lucky77Pro",
|
|
},
|
|
},
|
|
})
|
|
|
|
if len(resp.Items) != 1 {
|
|
t.Fatalf("items = %d, want 1", len(resp.Items))
|
|
}
|
|
item := resp.Items[0]
|
|
if item.Provider != "BAISHUN" {
|
|
t.Fatalf("provider = %q, want BAISHUN", item.Provider)
|
|
}
|
|
if item.VendorType != "BAISHUN" {
|
|
t.Fatalf("vendorType = %q, want BAISHUN", item.VendorType)
|
|
}
|
|
if item.ProviderGameID != "1046" {
|
|
t.Fatalf("providerGameId = %q, want 1046", item.ProviderGameID)
|
|
}
|
|
if item.VendorGameID != "1046" {
|
|
t.Fatalf("vendorGameId = %q, want 1046", item.VendorGameID)
|
|
}
|
|
}
|
|
|
|
func TestPublicRoomGameListResponseMapsLingxianToLeaderForOldClients(t *testing.T) {
|
|
resp := publicRoomGameListResponse(&gameprovider.RoomGameListResponse{
|
|
Items: []gameprovider.RoomGameListItem{
|
|
{
|
|
ID: 9528,
|
|
GameID: "1090",
|
|
GameType: "LINGXIAN",
|
|
Provider: "LINGXIAN",
|
|
ProviderGameID: "1090",
|
|
Name: "Lingxian Game",
|
|
LaunchParams: map[string]any{"gameType": "LINGXIAN", "screenMode": "half"},
|
|
},
|
|
},
|
|
})
|
|
|
|
if len(resp.Items) != 1 {
|
|
t.Fatalf("items = %d, want 1", len(resp.Items))
|
|
}
|
|
item := resp.Items[0]
|
|
if item.Provider != "LEADER" {
|
|
t.Fatalf("provider = %q, want LEADER", item.Provider)
|
|
}
|
|
if item.GameType != "LEADER" {
|
|
t.Fatalf("gameType = %q, want LEADER", item.GameType)
|
|
}
|
|
if item.VendorType != "LEADER" {
|
|
t.Fatalf("vendorType = %q, want LEADER", item.VendorType)
|
|
}
|
|
if got := item.LaunchParams["gameType"]; got != "LEADER" {
|
|
t.Fatalf("launchParams.gameType = %v, want LEADER", got)
|
|
}
|
|
if got := item.LaunchParams["screenMode"]; got != "half" {
|
|
t.Fatalf("launchParams.screenMode = %v, want half", got)
|
|
}
|
|
}
|
|
|
|
func TestPublicLaunchKeepsLegacyBridgeAndProviderFields(t *testing.T) {
|
|
launchConfig := map[string]any{"code": "launch-code"}
|
|
resp := publicLaunch(&gameprovider.LaunchResponse{
|
|
ID: 9527,
|
|
GameSessionID: "bs_room_1",
|
|
Provider: "BAISHUN",
|
|
GameID: "bs_1046",
|
|
ProviderGameID: "1046",
|
|
LaunchConfig: launchConfig,
|
|
RoomState: gameprovider.RoomStateResponse{
|
|
RoomID: "room-1",
|
|
State: "PLAYING",
|
|
Provider: "BAISHUN",
|
|
CurrentProviderGameID: "1046",
|
|
},
|
|
})
|
|
|
|
if resp.Provider != "BAISHUN" {
|
|
t.Fatalf("provider = %q, want BAISHUN", resp.Provider)
|
|
}
|
|
if resp.VendorType != "BAISHUN" {
|
|
t.Fatalf("vendorType = %q, want BAISHUN", resp.VendorType)
|
|
}
|
|
if resp.VendorGameID != "1046" {
|
|
t.Fatalf("vendorGameId = %q, want 1046", resp.VendorGameID)
|
|
}
|
|
bridgeConfig, ok := resp.BridgeConfig.(map[string]any)
|
|
if !ok {
|
|
t.Fatalf("bridgeConfig type = %T, want map[string]any", resp.BridgeConfig)
|
|
}
|
|
if got := bridgeConfig["code"]; got != "launch-code" {
|
|
t.Fatalf("bridgeConfig[code] = %v, want launch-code", got)
|
|
}
|
|
if resp.RoomState.Provider != "BAISHUN" {
|
|
t.Fatalf("roomState.provider = %q, want BAISHUN", resp.RoomState.Provider)
|
|
}
|
|
if resp.RoomState.CurrentVendorGameID != "1046" {
|
|
t.Fatalf("roomState.currentVendorGameId = %q, want 1046", resp.RoomState.CurrentVendorGameID)
|
|
}
|
|
}
|
|
|
|
func TestPublicLaunchMapsLingxianToLeaderForOldClients(t *testing.T) {
|
|
resp := publicLaunch(&gameprovider.LaunchResponse{
|
|
ID: 9528,
|
|
GameSessionID: "lx_1_1090",
|
|
Provider: "LINGXIAN",
|
|
GameID: "1090",
|
|
ProviderGameID: "1090",
|
|
LaunchConfig: map[string]any{"uid": "user-1"},
|
|
RoomState: gameprovider.RoomStateResponse{
|
|
RoomID: "room-1",
|
|
State: "PLAYING",
|
|
Provider: "LINGXIAN",
|
|
CurrentProviderGameID: "1090",
|
|
},
|
|
})
|
|
|
|
if resp.Provider != "LEADER" {
|
|
t.Fatalf("provider = %q, want LEADER", resp.Provider)
|
|
}
|
|
if resp.VendorType != "LEADER" {
|
|
t.Fatalf("vendorType = %q, want LEADER", resp.VendorType)
|
|
}
|
|
if resp.RoomState.Provider != "LEADER" {
|
|
t.Fatalf("roomState.provider = %q, want LEADER", resp.RoomState.Provider)
|
|
}
|
|
}
|