50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package hostorg
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
)
|
|
|
|
func TestFlexibleInt64AcceptsStringAndNumber(t *testing.T) {
|
|
t.Parallel()
|
|
cases := []struct {
|
|
name string
|
|
body string
|
|
want int64
|
|
}{
|
|
{name: "string", body: `{"targetUserId":"323096761415507968"}`, want: 323096761415507968},
|
|
{name: "number", body: `{"targetUserId":323096761415507968}`, want: 323096761415507968},
|
|
}
|
|
for _, tc := range cases {
|
|
tc := tc
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
var req createBDLeaderRequest
|
|
if err := json.Unmarshal([]byte(tc.body), &req); err != nil {
|
|
t.Fatalf("unmarshal request: %v", err)
|
|
}
|
|
if got := req.TargetUserID.Int64(); got != tc.want {
|
|
t.Fatalf("target user id = %d, want %d", got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestManagerRegionExpansionDefaultsClosedAndPreservesExplicitEnable(t *testing.T) {
|
|
var omitted createManagerRequest
|
|
if err := json.Unmarshal([]byte(`{"targetUserId":"1003"}`), &omitted); err != nil {
|
|
t.Fatalf("unmarshal omitted permission: %v", err)
|
|
}
|
|
if omitted.permissionsWithDefault().CanAddBDLeaderInRegion {
|
|
t.Fatalf("region expansion must default closed")
|
|
}
|
|
|
|
var enabled createManagerRequest
|
|
if err := json.Unmarshal([]byte(`{"targetUserId":"1003","canAddBdLeaderInRegion":true}`), &enabled); err != nil {
|
|
t.Fatalf("unmarshal enabled permission: %v", err)
|
|
}
|
|
if !enabled.permissionsWithDefault().CanAddBDLeaderInRegion {
|
|
t.Fatalf("explicit region expansion must be preserved")
|
|
}
|
|
}
|