Commit 6a2965c

mo khan <mo@mokhan.ca>
2025-04-11 15:42:38
feat: add health check endpoint
1 parent acdd82d
Changed files (3)
pkg/web/server.go
@@ -23,6 +23,8 @@ func NewServer(storage db.Repository) *Server {
 
 func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	switch r.URL.String() {
+	case "/health":
+		w.WriteHeader(http.StatusOK)
 	case "/sparkles.json":
 		switch r.Method {
 		case "GET":
pkg/web/server_test.go
@@ -22,6 +22,7 @@ func TestServer(t *testing.T) {
 			response := httptest.NewRecorder()
 			request, err := http.NewRequest("GET", "/sparkles.json", nil)
 			require.NoError(t, err)
+
 			NewServer(store).ServeHTTP(response, request)
 
 			assert.Equal(t, http.StatusOK, response.Code)
@@ -34,4 +35,15 @@ func TestServer(t *testing.T) {
 			assert.Equal(t, "for helping me", items[0].Reason)
 		})
 	})
+
+	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)
+			assert.Equal(t, http.StatusOK, response.Code)
+		})
+	})
 }
go.mod
@@ -3,6 +3,7 @@ module gitlab.com/mokhax/sparkled
 go 1.24.0
 
 require (
+	github.com/google/jsonapi v1.0.0
 	github.com/oklog/ulid v1.3.1
 	github.com/stretchr/testify v1.10.0
 	github.com/xlgmokha/x v0.0.0-20250404223908-0b29f54f06e7
@@ -10,7 +11,6 @@ require (
 
 require (
 	github.com/davecgh/go-spew v1.1.1 // indirect
-	github.com/google/jsonapi v1.0.0 // indirect
 	github.com/pmezard/go-difflib v1.0.0 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect