From 6d525bb541230c707a160ef670449b7588abf43b Mon Sep 17 00:00:00 2001 From: mo khan Date: Fri, 11 Apr 2025 15:50:59 -0600 Subject: test: move sparkles route tests to a separate file --- Makefile | 3 ++- pkg/web/server_test.go | 49 ++++++++---------------------------------------- pkg/web/sparkles_test.go | 41 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 42 deletions(-) create mode 100644 pkg/web/sparkles_test.go diff --git a/Makefile b/Makefile index 311387f..1e63bbf 100644 --- a/Makefile +++ b/Makefile @@ -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) + }) + }) +} -- cgit v1.2.3