diff options
| author | mo khan <mo@mokhan.ca> | 2025-04-14 14:16:17 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-04-14 14:16:17 -0600 |
| commit | 88f2dd1cab10f4869077506be01d7680647fb2b2 (patch) | |
| tree | 6e84cb1e03bf69d6e1966e2bcecfa6a59876726c /app | |
| parent | d9e9dfde454cc26f4d9a64dbdad6c6db425b6271 (diff) | |
test: refactor tests to include routing
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/sparkles/controller_test.go | 22 |
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())) |
