Files
2025-04-24 22:09:10 +02:00

54 lines
1.1 KiB
Go

package api
import (
"errors"
"net/http"
"net/http/httptest"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/lovelaze/nebula-sync/internal/sync"
)
func TestHealthHandler_healthy(t *testing.T) {
state := sync.NewState()
state.OnSuccess()
require.Len(t, state.Stack, 1)
require.True(t, state.Stack[0].Success)
server := NewServer(state)
req := httptest.NewRequest(http.MethodGet, "/health", nil)
resp := httptest.NewRecorder()
server.router.ServeHTTP(resp, req)
result := resp.Result()
defer result.Body.Close()
assert.Equal(t, 200, result.StatusCode)
}
func TestHealthHandler_unhealthy(t *testing.T) {
state := sync.NewState()
state.OnFailure(errors.New(("test error")))
require.Len(t, state.Stack, 1)
require.False(t, state.Stack[0].Success)
server := NewServer(state)
req := httptest.NewRequest(http.MethodGet, "/health", nil)
resp := httptest.NewRecorder()
server.router.ServeHTTP(resp, req)
result := resp.Result()
defer result.Body.Close()
assert.Equal(t, 500, result.StatusCode)
}