mirror of
https://github.com/k8sgpt-ai/k8sgpt.git
synced 2025-08-15 06:23:03 +00:00
chore: added basic server startup test (#817)
Signed-off-by: Alex Jones <alexsimonjones@gmail.com>
This commit is contained in:
parent
fcd29a547d
commit
3e7cea7bd3
@ -42,6 +42,7 @@ type Config struct {
|
|||||||
Handler *handler
|
Handler *handler
|
||||||
Logger *zap.Logger
|
Logger *zap.Logger
|
||||||
metricsServer *http.Server
|
metricsServer *http.Server
|
||||||
|
listener net.Listener
|
||||||
}
|
}
|
||||||
|
|
||||||
type Health struct {
|
type Health struct {
|
||||||
@ -56,6 +57,10 @@ var health = Health{
|
|||||||
Failure: 0,
|
Failure: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Config) Shutdown() error {
|
||||||
|
return s.listener.Close()
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Config) Serve() error {
|
func (s *Config) Serve() error {
|
||||||
|
|
||||||
var lis net.Listener
|
var lis net.Listener
|
||||||
@ -65,6 +70,7 @@ func (s *Config) Serve() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
s.listener = lis
|
||||||
s.Logger.Info(fmt.Sprintf("binding api to %s", s.Port))
|
s.Logger.Info(fmt.Sprintf("binding api to %s", s.Port))
|
||||||
grpcServerUnaryInterceptor := grpc.UnaryInterceptor(logInterceptor(s.Logger))
|
grpcServerUnaryInterceptor := grpc.UnaryInterceptor(logInterceptor(s.Logger))
|
||||||
grpcServer := grpc.NewServer(grpcServerUnaryInterceptor)
|
grpcServer := grpc.NewServer(grpcServerUnaryInterceptor)
|
||||||
|
41
pkg/server/server_test.go
Normal file
41
pkg/server/server_test.go
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package server
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/fatih/color"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
"os"
|
||||||
|
"sync"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestServerInit(t *testing.T) {
|
||||||
|
logger, err := zap.NewDevelopment()
|
||||||
|
if err != nil {
|
||||||
|
color.Red("failed to create logger: %v", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
defer logger.Sync()
|
||||||
|
server_config := Config{
|
||||||
|
Backend: "openai",
|
||||||
|
Port: "0",
|
||||||
|
MetricsPort: "0",
|
||||||
|
Token: "none",
|
||||||
|
Logger: logger,
|
||||||
|
}
|
||||||
|
var wg sync.WaitGroup
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
wg.Add(1)
|
||||||
|
err := server_config.Serve()
|
||||||
|
if err != nil {
|
||||||
|
assert.Fail(t, "serve: %s", err.Error())
|
||||||
|
}
|
||||||
|
server_config.Shutdown()
|
||||||
|
if err != nil {
|
||||||
|
assert.Fail(t, "shutdown: %s", err.Error())
|
||||||
|
}
|
||||||
|
wg.Done()
|
||||||
|
}()
|
||||||
|
wg.Wait()
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user