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) } }