Files
orbit/internal/transport/httpserver/workflow_query_test.go

22 lines
916 B
Go

package httpserver
import (
"net/http/httptest"
"net/url"
"testing"
)
func TestWorkflowListQueryStrictFilters(t *testing.T) {
for _, query := range []string{"limit=0", "limit=", "limit=x", "state=", "state=RUNNING&state=WAITING", "paused=0", "paused=True", "unknown=x", "business_key=", "created_from=tomorrow", "version=%zz", "state=WAITING;limit=2"} {
r := httptest.NewRequest("GET", "/v1/workflows?"+query, nil)
if _, err := workflowListQuery(r); err == nil {
t.Fatal("accepted", query)
}
}
q := url.Values{"business_key": {"关联 +/%\n "}, "paused": {"false"}, "created_from": {"2026-09-18T08:00:00.123456+08:00"}, "limit": {"2"}}
in, err := workflowListQuery(httptest.NewRequest("GET", "/v1/workflows?"+q.Encode(), nil))
if err != nil || in.BusinessKey != q.Get("business_key") || in.Paused == nil || *in.Paused || in.Limit != 2 || in.CreatedFrom.UTC().Hour() != 0 {
t.Fatal(in, err)
}
}