32 lines
754 B
Go
32 lines
754 B
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)
|
|
}
|
|
})
|
|
}
|
|
}
|