From 88f2dd1cab10f4869077506be01d7680647fb2b2 Mon Sep 17 00:00:00 2001 From: mo khan Date: Mon, 14 Apr 2025 14:16:17 -0600 Subject: test: refactor tests to include routing --- app/controllers/sparkles/controller_test.go | 22 +++++++++++++++------- 1 file 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())) -- cgit v1.2.3