Skip to content

Commit

Permalink
chore: added basic server startup test (#817)
Browse files Browse the repository at this point in the history
Signed-off-by: Alex Jones <alexsimonjones@gmail.com>
  • Loading branch information
AlexsJones committed Dec 29, 2023
1 parent fcd29a5 commit 3e7cea7
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
6 changes: 6 additions & 0 deletions pkg/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ type Config struct {
Handler *handler
Logger *zap.Logger
metricsServer *http.Server
listener net.Listener
}

type Health struct {
Expand All @@ -56,6 +57,10 @@ var health = Health{
Failure: 0,
}

func (s *Config) Shutdown() error {
return s.listener.Close()
}

func (s *Config) Serve() error {

var lis net.Listener
Expand All @@ -65,6 +70,7 @@ func (s *Config) Serve() error {
if err != nil {
return err
}
s.listener = lis
s.Logger.Info(fmt.Sprintf("binding api to %s", s.Port))
grpcServerUnaryInterceptor := grpc.UnaryInterceptor(logInterceptor(s.Logger))
grpcServer := grpc.NewServer(grpcServerUnaryInterceptor)
Expand Down
41 changes: 41 additions & 0 deletions pkg/server/server_test.go
Original file line number Diff line number Diff line change
@@ -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()
}

0 comments on commit 3e7cea7

Please sign in to comment.