summaryrefslogtreecommitdiff
path: root/pkg/web/server_test.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-11 15:42:07 -0600
committermo khan <mo@mokhan.ca>2025-04-11 15:42:07 -0600
commit49e61799c837cf49687d9a15a2fb0b04ca74d47c (patch)
treeb2b8df8864041efa936b7bb0c56e8ddc2aba473b /pkg/web/server_test.go
parent2c018238c7f4aba8db9cbbe3eadb91b85c50629e (diff)
refactor: extract test helpers
Diffstat (limited to 'pkg/web/server_test.go')
-rw-r--r--pkg/web/server_test.go38
1 files changed, 26 insertions, 12 deletions
diff --git a/pkg/web/server_test.go b/pkg/web/server_test.go
index 684cc7f..284bed0 100644
--- a/pkg/web/server_test.go
+++ b/pkg/web/server_test.go
@@ -10,23 +10,39 @@ import (
"github.com/xlgmokha/x/pkg/serde"
"gitlab.com/mokhax/sparkled/pkg/db"
"gitlab.com/mokhax/sparkled/pkg/domain"
+ "gitlab.com/mokhax/sparkled/pkg/test"
)
func TestServer(t *testing.T) {
- t.Run("GET /sparkles.json", func(t *testing.T) {
- t.Run("returns the list of sparkles", func(t *testing.T) {
- sparkle, _ := domain.NewSparkle("@tanuki for helping me")
- store := db.NewRepository()
- store.Save(sparkle)
+ repository := db.NewRepository()
+ server := NewServer(repository)
+ t.Run("GET /index.html", func(t *testing.T) {
+ t.Run("returns the homepage", func(t *testing.T) {
+ t.Skip()
response := httptest.NewRecorder()
- request, err := http.NewRequest("GET", "/sparkles.json", nil)
- require.NoError(t, err)
-
- NewServer(store).ServeHTTP(response, request)
+ server.ServeHTTP(response, test.Request("GET", "/"))
assert.Equal(t, http.StatusOK, response.Code)
+ })
+ })
+
+ t.Run("GET /sparkles", func(t *testing.T) {
+ sparkle, _ := domain.NewSparkle("@tanuki for helping me")
+ store := db.NewRepository()
+ store.Save(sparkle)
+
+ server := NewServer(store)
+ t.Run("returns JSON", func(t *testing.T) {
+ request := test.Request("GET", "/sparkles",
+ test.WithAcceptHeader(serde.JSON),
+ )
+ response := httptest.NewRecorder()
+
+ server.ServeHTTP(response, request)
+
+ assert.Equal(t, http.StatusOK, response.Code)
items, err := serde.FromJSON[[]*domain.Sparkle](response.Body)
require.NoError(t, err)
@@ -39,10 +55,8 @@ func TestServer(t *testing.T) {
t.Run("GET /health", func(t *testing.T) {
t.Run("returns OK", func(t *testing.T) {
response := httptest.NewRecorder()
- request, err := http.NewRequest("GET", "/health", nil)
- require.NoError(t, err)
- NewServer(db.NewRepository()).ServeHTTP(response, request)
+ server.ServeHTTP(response, test.Request("GET", "/health"))
assert.Equal(t, http.StatusOK, response.Code)
})
})