feat: unify owned and competitor work analysis
This commit is contained in:
@@ -2,6 +2,7 @@ package api
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
@@ -97,12 +98,20 @@ func TestWorkFilterParsesNumericAndTimeFilters(t *testing.T) {
|
||||
}
|
||||
return c.JSON(filter)
|
||||
})
|
||||
request := httptest.NewRequest(http.MethodGet, "/?platform=douyin&source_id=source-1&source_type=owned&published_at_status=published&min_likes=1&min_comments=2&min_shares=3&published_after=2026-09-17T00:00:00Z&published_before=2026-09-18T00:00:00Z", nil)
|
||||
request := httptest.NewRequest(http.MethodGet, "/?platform=douyin&source_id=source-1&source_type=owned&published_at_status=published&min_likes=1&min_comments=2&min_shares=3&min_collect_count=4&min_play_count=0&sort_by=likes&sort_order=asc&published_after=2026-09-17T00:00:00Z&published_before=2026-09-18T00:00:00Z", nil)
|
||||
response, err := app.Test(request)
|
||||
if err != nil || response.StatusCode != http.StatusOK {
|
||||
t.Fatalf("valid work filter status = %d, err = %v", response.StatusCode, err)
|
||||
}
|
||||
for _, query := range []string{"min_likes=bad", "min_comments=bad", "min_shares=bad", "published_after=bad", "published_before=bad"} {
|
||||
var got creator.WorkFilter
|
||||
if err := json.NewDecoder(response.Body).Decode(&got); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_ = response.Body.Close()
|
||||
if got.SortBy != "likes" || got.SortOrder != "asc" || got.MinCollectCount == nil || *got.MinCollectCount != 4 || got.MinPlayCount == nil || *got.MinPlayCount != 0 {
|
||||
t.Fatalf("analysis query not propagated: %+v", got)
|
||||
}
|
||||
for _, query := range []string{"min_likes=bad", "min_comments=bad", "min_shares=bad", "min_collect_count=bad", "min_play_count=bad", "min_likes=-1", "min_collect_count=-1", "min_play_count=-1", "published_after=bad", "published_before=bad"} {
|
||||
response, err := app.Test(httptest.NewRequest(http.MethodGet, "/?"+query, nil))
|
||||
if err != nil || response.StatusCode != http.StatusBadRequest {
|
||||
t.Errorf("invalid work filter %q status = %d, err = %v", query, response.StatusCode, err)
|
||||
|
||||
Reference in New Issue
Block a user