diff options
| author | mo khan <mo@mokhan.ca> | 2025-04-11 15:50:59 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-04-11 15:50:59 -0600 |
| commit | 6d525bb541230c707a160ef670449b7588abf43b (patch) | |
| tree | 64974115a8d0d4c3e0530555696143ad05cd68bd | |
| parent | 49e61799c837cf49687d9a15a2fb0b04ca74d47c (diff) | |
test: move sparkles route tests to a separate file
| -rw-r--r-- | Makefile | 3 | ||||
| -rw-r--r-- | pkg/web/server_test.go | 49 | ||||
| -rw-r--r-- | pkg/web/sparkles_test.go | 41 |
3 files changed, 51 insertions, 42 deletions
@@ -16,7 +16,8 @@ setup: build: sparkled test: - @go test ./... + @go clean -testcache + @go test -shuffle=on ./... build-image: @docker build --tag $(IMAGE_TAG) . diff --git a/pkg/web/server_test.go b/pkg/web/server_test.go index 284bed0..3bea5a8 100644 --- a/pkg/web/server_test.go +++ b/pkg/web/server_test.go @@ -6,58 +6,25 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "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) { - repository := db.NewRepository() - server := NewServer(repository) + server := NewServer(db.NewRepository()) t.Run("GET /index.html", func(t *testing.T) { - t.Run("returns the homepage", func(t *testing.T) { - t.Skip() - response := httptest.NewRecorder() + response := httptest.NewRecorder() - 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) - - assert.Equal(t, 1, len(items)) - assert.Equal(t, "@tanuki", items[0].Sparklee) - assert.Equal(t, "for helping me", items[0].Reason) - }) + server.ServeHTTP(response, test.Request("GET", "/")) + assert.Equal(t, http.StatusOK, response.Code) + assert.Contains(t, "SparkleLab", response.Body.String()) }) t.Run("GET /health", func(t *testing.T) { - t.Run("returns OK", func(t *testing.T) { - response := httptest.NewRecorder() + response := httptest.NewRecorder() - server.ServeHTTP(response, test.Request("GET", "/health")) - assert.Equal(t, http.StatusOK, response.Code) - }) + server.ServeHTTP(response, test.Request("GET", "/health")) + assert.Equal(t, http.StatusOK, response.Code) }) } diff --git a/pkg/web/sparkles_test.go b/pkg/web/sparkles_test.go new file mode 100644 index 0000000..eb996cf --- /dev/null +++ b/pkg/web/sparkles_test.go @@ -0,0 +1,41 @@ +package web + +import ( + "net/http" + "net/http/httptest" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "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 TestSparkles(t *testing.T) { + 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) + + assert.Equal(t, 1, len(items)) + assert.Equal(t, "@tanuki", items[0].Sparklee) + assert.Equal(t, "for helping me", items[0].Reason) + }) + }) +} |
