3
0
2022-11-14 09:26:39 +01:00

41 lines
970 B
Go

package helpers
import (
"bytes"
"fmt"
"mime/multipart"
"net/textproto"
"testing"
"github.com/steinfletcher/apitest"
"github.com/stretchr/testify/require"
)
func InitFileUpload(t *testing.T, apiTest *apitest.APITest, endpoint string, form map[string]string, file []byte, name, mimetype string) *apitest.Response {
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
for k, v := range form {
require.NoError(t, writer.WriteField(k, v))
}
header := make(textproto.MIMEHeader)
header.Set("Content-Disposition",
fmt.Sprintf(`form-data; name="%s"; filename="%s"`,
"upload", name))
header.Set("Content-Type", mimetype)
part, err := writer.CreatePart(header)
require.NoError(t, err)
_, err = part.Write(file)
require.NoError(t, err)
require.NoError(t, writer.Close())
return apiTest.
Post(endpoint).
Body(body.String()).
Header("Content-Type", writer.FormDataContentType()).
Header("Accept", "application/json").
Expect(t)
}