summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-14 14:16:17 -0600
committermo khan <mo@mokhan.ca>2025-04-14 14:16:17 -0600
commit88f2dd1cab10f4869077506be01d7680647fb2b2 (patch)
tree6e84cb1e03bf69d6e1966e2bcecfa6a59876726c
parentd9e9dfde454cc26f4d9a64dbdad6c6db425b6271 (diff)
test: refactor tests to include routing
-rw-r--r--app/controllers/sparkles/controller_test.go22
1 files changed, 15 insertions, 7 deletions
diff --git a/app/controllers/sparkles/controller_test.go b/app/controllers/sparkles/controller_test.go
index 00490d7..17bc338 100644
--- a/app/controllers/sparkles/controller_test.go
+++ b/app/controllers/sparkles/controller_test.go
@@ -2,7 +2,6 @@ package sparkles
import (
"net/http"
- "net/http/httptest"
"testing"
"github.com/stretchr/testify/assert"
@@ -19,15 +18,18 @@ func TestSparkles(t *testing.T) {
store := db.NewRepository()
store.Save(sparkle)
+ mux := http.NewServeMux()
controller := New(store)
+ controller.MountTo(mux)
t.Run("returns JSON", func(t *testing.T) {
- request := test.Request("GET", "/sparkles",
+ request, response := test.RequestResponse(
+ "GET",
+ "/sparkles",
test.WithAcceptHeader(serde.JSON),
)
- response := httptest.NewRecorder()
- controller.Index(response, request)
+ mux.ServeHTTP(response, request)
assert.Equal(t, http.StatusOK, response.Code)
items, err := serde.FromJSON[[]*domain.Sparkle](response.Body)
@@ -42,13 +44,19 @@ func TestSparkles(t *testing.T) {
t.Run("POST /sparkles", func(t *testing.T) {
t.Run("saves a new sparkle", func(t *testing.T) {
repository := db.NewRepository()
+ mux := http.NewServeMux()
controller := New(repository)
+ controller.MountTo(mux)
sparkle, _ := domain.NewSparkle("@tanuki for reviewing my MR!")
- request := test.Request("POST", "/sparkles", test.WithContentType(sparkle, serde.JSON))
- response := httptest.NewRecorder()
+ request, response := test.RequestResponse(
+ "POST",
+ "/sparkles",
+ test.WithAcceptHeader(serde.JSON),
+ test.WithContentType(sparkle, serde.JSON),
+ )
- controller.Create(response, request)
+ mux.ServeHTTP(response, request)
require.Equal(t, http.StatusCreated, response.Code)
assert.Equal(t, 1, len(repository.All()))