123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package health
- import (
- "net/http"
- "net/http/httptest"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- "github.com/imgproxy/imgproxy/v3/httpheaders"
- "github.com/imgproxy/imgproxy/v3/server/responsewriter"
- )
- func TestHealthHandler(t *testing.T) {
- // Create responsewriter.Factory
- rwConf := responsewriter.NewDefaultConfig()
- rwf, err := responsewriter.NewFactory(&rwConf)
- require.NoError(t, err)
- // Create a ResponseRecorder to record the response
- rr := httptest.NewRecorder()
- // Create a new health handler
- h := New()
- // Call the handler function directly (no need for actual HTTP request)
- h.Execute("test-req-id", rwf.NewWriter(rr), nil)
- // Check that we get a valid response (either 200 or 500 depending on vips state)
- assert.True(t, rr.Code == http.StatusOK || rr.Code == http.StatusInternalServerError)
- // Check headers are set correctly
- assert.Equal(t, "text/plain", rr.Header().Get(httpheaders.ContentType))
- assert.Equal(t, "no-cache", rr.Header().Get(httpheaders.CacheControl))
- // Verify response format and content
- body := rr.Body.String()
- assert.NotEmpty(t, body)
- assert.Equal(t, "imgproxy is running", body)
- }
|