Files
cmautobuy/admin/handler/api/client_api_test.go
T

39 lines
1.2 KiB
Go

package api
import (
"bytes"
"net/http"
"net/http/httptest"
"strings"
"testing"
"github.com/gin-gonic/gin"
"cmautobuy/admin/model"
"cmautobuy/admin/service"
)
func TestTaskPayload_包含不可变执行模式(t *testing.T) {
payload := taskPayload(&model.Task{TaskID: "T-1", TaskType: model.TaskPurchase, ExecutionMode: model.TaskExecutionLive})
if payload["execution_mode"] != model.TaskExecutionLive {
t.Fatalf("execution_mode=%v", payload["execution_mode"])
}
}
func TestResolvePurchaseSpec_请求体上限在进入数据库前拒绝(t *testing.T) {
gin.SetMode(gin.TestMode)
router := gin.New()
Register(router, nil, nil, service.AIEndpointPolicy{})
body := bytes.Repeat([]byte("x"), service.MaxPurchaseSpecResolutionBodyBytes+1)
request := httptest.NewRequest(http.MethodPost,
"/api/v1/client/tasks/cg255/spec-resolution", bytes.NewReader(body))
request.Header.Set("X-Client-Id", "CLIENT-255")
request.Header.Set("Idempotency-Key", "spec-resolution-v1:"+strings.Repeat("0", 64))
recorder := httptest.NewRecorder()
router.ServeHTTP(recorder, request)
if recorder.Code != http.StatusBadRequest || !strings.Contains(recorder.Body.String(), `"code":"INVALID_BODY"`) {
t.Fatalf("status=%d body=%s", recorder.Code, recorder.Body.String())
}
}