package tonic import ( "net/http" "testing" "github.com/gin-contrib/requestid" "github.com/gin-gonic/gin" "github.com/stretchr/testify/assert" "edge-infra.dev/pkg/lib/logging" ) func TestNew(t *testing.T) { svr := New() assert.NotEmpty(t, svr) assert.Equal(t, svr.port, defaultPort) assert.Equal(t, svr.mode, gin.ReleaseMode) assert.Equal(t, len(svr.routes), 0) } func TestNewWithOptions(t *testing.T) { svr := NewWithOptions("9002", gin.DebugMode) assert.NotEmpty(t, svr) assert.Equal(t, svr.port, "9002") assert.Equal(t, svr.mode, gin.DebugMode) assert.Equal(t, len(svr.routes), 0) } func TestWithHealthRoute(t *testing.T) { svr := New().WithHealthRoute() assert.NotEmpty(t, svr) assert.Equal(t, svr.port, defaultPort) assert.Equal(t, svr.mode, gin.ReleaseMode) assert.Equal(t, len(svr.routes), 1) assert.Equal(t, svr.routes[0].Path, "/health") assert.Equal(t, svr.routes[0].Action, MethodAny) } func TestWithReadyRoute(t *testing.T) { svr := New().WithReadyRoute() assert.NotEmpty(t, svr) assert.Equal(t, svr.port, defaultPort) assert.Equal(t, svr.mode, gin.ReleaseMode) assert.Equal(t, len(svr.routes), 1) assert.Equal(t, svr.routes[0].Path, "/ready") assert.Equal(t, svr.routes[0].Action, MethodAny) } func TestWith404Route(t *testing.T) { svr := New().With404Route() assert.NotEmpty(t, svr) assert.Equal(t, svr.port, defaultPort) assert.Equal(t, svr.mode, gin.ReleaseMode) assert.Equal(t, len(svr.routes), 1) assert.Equal(t, svr.routes[0].Path, "") assert.Equal(t, svr.routes[0].Action, "") } func TestRegisterRoutes(t *testing.T) { log := logging.NewLogger().Logger svr := New().SetLogger(log) assert.NotEmpty(t, svr) assert.Equal(t, svr.port, defaultPort) assert.Equal(t, svr.mode, gin.ReleaseMode) assert.NotNil(t, svr.logger) } func TestSetRoutes(t *testing.T) { svr := New().SetRoutes(Route{ Path: "/hello", Action: http.MethodGet, Handlers: nil, }) assert.NotEmpty(t, svr) assert.Equal(t, svr.port, defaultPort) assert.Equal(t, svr.mode, gin.ReleaseMode) assert.Equal(t, len(svr.routes), 1) } func TestSetMiddlewares(t *testing.T) { svr := New().SetMiddlewares(requestid.New()) assert.NotEmpty(t, svr) assert.Equal(t, svr.port, defaultPort) assert.Equal(t, svr.mode, gin.ReleaseMode) assert.Equal(t, len(svr.middlewares), 1) }