Skip to content

Commit a159de6

Browse files
committed
test(helpers): body parsing functions
1 parent fd6025a commit a159de6

File tree

1 file changed

+39
-3
lines changed

1 file changed

+39
-3
lines changed

internal/util/helpers_test.go

+39-3
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717
package util_test
1818

1919
import (
20+
"bytes"
2021
"encoding/json"
2122
"errors"
2223
"html/template"
2324
"io"
25+
"mime/multipart"
2426
"net/http"
2527
"net/http/httptest"
28+
"strings"
2629
"testing"
2730

2831
"github.com/orca-group/spirit/internal/util"
@@ -51,9 +54,42 @@ func TestCountLines(t *testing.T) {
5154
require.Equal(t, lines, template.HTML("<div>1</div><div>2</div>"))
5255
}
5356

54-
func TestHandleBodyDetection(t *testing.T) {}
55-
func TestHandleBodyJSON(t *testing.T) {}
56-
func TestHandleBodyMultipart(t *testing.T) {}
57+
func TestHandleBodyJSON(t *testing.T) {
58+
var buf bytes.Buffer
59+
json.NewEncoder(&buf).Encode(map[string]interface{}{
60+
"content": "Hello, world!",
61+
})
62+
63+
req := httptest.NewRequest(http.MethodPost, "/", &buf)
64+
req.Header.Set("Content-Type", "application/json")
65+
body, err := util.HandleBody(400000, req)
66+
67+
require.NoError(t, err)
68+
require.Equal(t, "Hello, world!", body.Content)
69+
}
70+
71+
func TestHandleBodyMultipart(t *testing.T) {
72+
var buf bytes.Buffer
73+
writer := multipart.NewWriter(&buf)
74+
fw, _ := writer.CreateFormField("content")
75+
io.Copy(fw, strings.NewReader("Hello, world!"))
76+
writer.Close()
77+
78+
req := httptest.NewRequest(http.MethodPost, "/", &buf)
79+
req.Header.Set("Content-Type", writer.FormDataContentType())
80+
body, err := util.HandleBody(400000, req)
81+
82+
require.NoError(t, err)
83+
require.Equal(t, "Hello, world!", body.Content)
84+
}
85+
86+
func TestHandleBodyNoContent(t *testing.T) {
87+
req := httptest.NewRequest(http.MethodPost, "/", &bytes.Buffer{})
88+
body, err := util.HandleBody(400000, req)
89+
90+
require.NoError(t, err)
91+
require.Equal(t, "", body.Content)
92+
}
5793

5894
func TestWriteJSON(t *testing.T) {
5995
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

0 commit comments

Comments
 (0)