keel/service/http_test.go
Kevin Franklin Kim 44f46557b7
fix: unit tests
2024-03-15 12:41:02 +01:00

51 lines
2.3 KiB
Go

package service_test
import (
"net/http"
"time"
"github.com/foomo/keel"
"github.com/foomo/keel/service"
"go.uber.org/zap"
)
func ExampleNewHTTP() {
svr := keel.NewServer(
keel.WithLogger(zap.NewExample()),
keel.WithGracefulTimeout(time.Second),
keel.WithShutdownTimeout(3*time.Second),
)
l := svr.Logger()
svr.AddService(
service.NewHTTP(l, "demo", "localhost:8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte("OK"))
})),
)
go func() {
waitFor("localhost:8080")
l.Info(httpGet("http://localhost:8080"))
shutdown()
}()
svr.Run()
// Output:
// {"level":"info","msg":"starting keel server"}
// {"level":"info","msg":"starting keel service","keel_service_type":"http","keel_service_name":"demo","net_host_ip":"localhost","net_host_port":"8080"}
// {"level":"info","msg":"OK"}
// {"level":"info","msg":"keel graceful shutdown"}
// {"level":"info","msg":"keel graceful shutdown timeout","graceful_timeout":"1s","shutdown_timeout":"3s"}
// {"level":"info","msg":"keel graceful shutdown timeout complete"}
// {"level":"info","msg":"keel graceful shutdown closers"}
// {"level":"info","msg":"stopping keel service","keel_service_type":"http","keel_service_name":"demo"}
// {"level":"warn","msg":"keel graceful shutdown closer failed","name":"*service.HTTP","error_type":"*errors.withStack","error_message":"failed to stop service: context deadline exceeded","error_messageVerbose":"context deadline exceeded\nfailed to stop service\ngithub.com/foomo/keel/service.(*HTTP).Close\n\t/Users/franklin/Workingcopies/github.com/foomo/keel/service/http.go:88\ngithub.com/foomo/keel.NewServer.func2\n\t/Users/franklin/Workingcopies/github.com/foomo/keel/server.go:137\ngolang.org/x/sync/errgroup.(*Group).Go.func1\n\t/Users/franklin/Workspaces/go/pkg/mod/golang.org/x/sync@v0.3.0/errgroup/errgroup.go:75\nruntime.goexit\n\t/opt/homebrew/opt/go/libexec/src/runtime/asm_arm64.s:1222"}
// {"level":"debug","msg":"keel graceful shutdown closer closed","name":"trace.noopTracerProvider"}
// {"level":"debug","msg":"keel graceful shutdown closer closed","name":"nonrecording.noopMeterProvider"}
// {"level":"info","msg":"keel graceful shutdown complete"}
// {"level":"info","msg":"keel server stopped"}
}