yumi-golang/internal/service/baishun/extra_json_test.go
2026-04-22 19:57:28 +08:00

70 lines
2.1 KiB
Go

package baishun
import "testing"
func TestUpdateExtExtraJSON(t *testing.T) {
raw := updateExtExtraJSON(`{"keep":"value"}`, map[string]any{
"sdkMode": "H5",
}, true)
if got := parseExtExtraJSON(raw)["keep"]; got != "value" {
t.Fatalf("extra keep = %v, want value", got)
}
cleared := updateExtExtraJSON(raw, map[string]any{}, true)
if params := launchParamsFromExtraJSON(cleared); params != nil {
t.Fatalf("launchParams after clear = %#v, want nil", params)
}
if got := parseExtExtraJSON(cleared)["keep"]; got != "value" {
t.Fatalf("extra keep after clear = %v, want value", got)
}
}
func TestUpdateExtExtraJSONWithGameType(t *testing.T) {
raw := updateExtExtraJSONWithGameType(`{"keep":"value"}`, map[string]any{
"sdkMode": "H5",
}, baishunVendorType, true)
params := launchParamsFromExtraJSON(raw)
if got := params["gameType"]; got != baishunVendorType {
t.Fatalf("launchParams[gameType] = %v, want %s", got, baishunVendorType)
}
if got := params["sdkMode"]; got != "H5" {
t.Fatalf("launchParams[sdkMode] = %v, want H5", got)
}
}
func TestLaunchParamsExposeToListAndAdmin(t *testing.T) {
raw := `{"launchParams":{"sdkMode":"H5"}}`
listItem := gameListRow{
ConfigID: 9527,
InternalGameID: "g-1",
VendorType: baishunVendorType,
VendorGameID: "1001",
LaunchMode: baishunLaunchModeRemote,
ExtExtraJSON: raw,
}.toListItem()
if got := listItem.ID; got != 9527 {
t.Fatalf("list id = %v, want 9527", got)
}
if got := listItem.GameType; got != baishunVendorType {
t.Fatalf("list gameType = %v, want %s", got, baishunVendorType)
}
if got := listItem.LaunchParams["gameType"]; got != baishunVendorType {
t.Fatalf("list launchParams[gameType] = %v, want %s", got, baishunVendorType)
}
adminItem := adminGameRow{
InternalGameID: "g-1",
VendorGameID: "1001",
ExtExtraJSON: raw,
}.toAdminItem()
if got := adminItem.GameType; got != baishunVendorType {
t.Fatalf("admin gameType = %v, want %s", got, baishunVendorType)
}
if got := adminItem.LaunchParams["sdkMode"]; got != "H5" {
t.Fatalf("admin launchParams[sdkMode] = %v, want H5", got)
}
}