50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package vidmod
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestWatchConsumeReqVideoIDCompatibility(t *testing.T) {
|
|
tests := []struct {
|
|
body string
|
|
want string
|
|
}{
|
|
{body: `{"videoId":"new-field"}`, want: "new-field"},
|
|
{body: `{"vid":"legacy-field"}`, want: "legacy-field"},
|
|
{body: `{"videoId":"new-field","vid":"legacy-field"}`, want: "new-field"},
|
|
}
|
|
for _, tt := range tests {
|
|
var req WatchConsumeReq
|
|
if err := json.Unmarshal([]byte(tt.body), &req); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got := req.GetVideoID(); got != tt.want {
|
|
t.Fatalf("GetVideoID() = %q, want %q", got, tt.want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestWatchConsumeRespJSON(t *testing.T) {
|
|
data, err := json.Marshal(WatchConsumeResp{
|
|
IsCan: true,
|
|
WatchCount: 2,
|
|
TotalWatchCount: 3,
|
|
Consumed: false,
|
|
})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for _, field := range []string{
|
|
`"isCan":true`,
|
|
`"watchCount":2`,
|
|
`"totalWatchCount":3`,
|
|
`"consumed":false`,
|
|
} {
|
|
if !strings.Contains(string(data), field) {
|
|
t.Fatalf("%s missing from response: %s", field, data)
|
|
}
|
|
}
|
|
}
|