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