summaryrefslogtreecommitdiff
path: root/pkg/web/sparkles_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/web/sparkles_test.go')
-rw-r--r--pkg/web/sparkles_test.go41
1 files changed, 41 insertions, 0 deletions
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)
+ })
+ })
+}