diff --git a/http_test.go b/http_test.go new file mode 100644 index 0000000..49e9791 --- /dev/null +++ b/http_test.go @@ -0,0 +1,71 @@ +package main + +import ( + "net/http" + "net/http/httptest" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestGCPHealthcheckLiveness(t *testing.T) { + handler := func(w http.ResponseWriter, req *http.Request) { + w.Write([]byte("test")) + } + + h := gcpHealthcheck(http.HandlerFunc(handler)) + rw := httptest.NewRecorder() + r, _ := http.NewRequest("GET", "/liveness_check", nil) + r.RemoteAddr = "127.0.0.1" + r.Host = "test-server" + h.ServeHTTP(rw, r) + + assert.Equal(t, 200, rw.Code) + assert.Equal(t, "OK", rw.Body.String()) +} + +func TestGCPHealthcheckReadiness(t *testing.T) { + handler := func(w http.ResponseWriter, req *http.Request) { + w.Write([]byte("test")) + } + + h := gcpHealthcheck(http.HandlerFunc(handler)) + rw := httptest.NewRecorder() + r, _ := http.NewRequest("GET", "/readiness_check", nil) + r.RemoteAddr = "127.0.0.1" + r.Host = "test-server" + h.ServeHTTP(rw, r) + + assert.Equal(t, 200, rw.Code) + assert.Equal(t, "OK", rw.Body.String()) +} + +func TestGCPHealthcheckNotReadiness(t *testing.T) { + handler := func(w http.ResponseWriter, req *http.Request) { + w.Write([]byte("test")) + } + + h := gcpHealthcheck(http.HandlerFunc(handler)) + rw := httptest.NewRecorder() + r, _ := http.NewRequest("GET", "/NOT_readiness_check", nil) + r.RemoteAddr = "127.0.0.1" + r.Host = "test-server" + h.ServeHTTP(rw, r) + + assert.NotEqual(t, "OK", rw.Body.String()) +} + +func TestGCPHealthcheckNotLiveness(t *testing.T) { + handler := func(w http.ResponseWriter, req *http.Request) { + w.Write([]byte("test")) + } + + h := gcpHealthcheck(http.HandlerFunc(handler)) + rw := httptest.NewRecorder() + r, _ := http.NewRequest("GET", "/NOT_liveness_check", nil) + r.RemoteAddr = "127.0.0.1" + r.Host = "test-server" + h.ServeHTTP(rw, r) + + assert.NotEqual(t, "OK", rw.Body.String()) +} diff --git a/options_test.go b/options_test.go index 7b12a2b..171ff36 100644 --- a/options_test.go +++ b/options_test.go @@ -268,3 +268,9 @@ func TestSkipOIDCDiscovery(t *testing.T) { assert.Equal(t, nil, o.Validate()) } + +func TestGCPHealthcheck(t *testing.T) { + o := testOptions() + o.GCPHealthChecks = true + assert.Equal(t, nil, o.Validate()) +}