package request_test import ( "bytes" "net/http" "net/http/httptest" "testing" "github.com/portainer/portainer/pkg/libhttp/request" "github.com/segmentio/encoding/json" "github.com/stretchr/testify/assert" ) type requestPayload struct { FirstName string `json:"first_name"` LastName string `json:"last_name"` } func (p *requestPayload) Validate(r *http.Request) error { return nil } func Test_GetPayload(t *testing.T) { payload := requestPayload{ FirstName: "John", LastName: "Doe", } payloadJSON, err := json.Marshal(payload) if err != nil { t.Fatal(err) } r := httptest.NewRequest(http.MethodPost, "/", bytes.NewReader(payloadJSON)) newPayload, err := request.GetPayload[requestPayload](r) if err != nil { t.Fatal(err) } assert.Equal(t, payload, *newPayload) }