Add test for serverResult func

This commit is contained in:
Dan Sosedoff
2018-11-05 17:07:32 -06:00
parent 9ca959c31c
commit abb143601b
3 changed files with 54 additions and 20 deletions

View File

@@ -1,10 +1,13 @@
package api
import (
"errors"
"net/http"
"net/http/httptest"
"net/url"
"testing"
"github.com/gin-gonic/gin"
"github.com/stretchr/testify/assert"
)
@@ -36,3 +39,34 @@ func Test_getSessionId(t *testing.T) {
req.URL, _ = url.Parse("http://foobar/?_session_id=token")
assert.Equal(t, "token", getSessionId(req))
}
func Test_serveResult(t *testing.T) {
server := gin.Default()
server.GET("/good", func(c *gin.Context) {
serveResult(gin.H{"foo": "bar"}, nil, c)
})
server.GET("/bad", func(c *gin.Context) {
serveResult(nil, errors.New("message"), c)
})
server.GET("/nodata", func(c *gin.Context) {
serveResult(nil, nil, c)
})
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/good", nil)
server.ServeHTTP(w, req)
assert.Equal(t, 200, w.Code)
assert.Equal(t, `{"foo":"bar"}`, w.Body.String())
w = httptest.NewRecorder()
req, _ = http.NewRequest("GET", "/bad", nil)
server.ServeHTTP(w, req)
assert.Equal(t, 400, w.Code)
assert.Equal(t, `{"error":"message"}`, w.Body.String())
w = httptest.NewRecorder()
req, _ = http.NewRequest("GET", "/nodata", nil)
server.ServeHTTP(w, req)
assert.Equal(t, 200, w.Code)
assert.Equal(t, `null`, w.Body.String())
}