Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
1.8 kB · 83 lines
Go
at sl/gitmirror
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384package observability
import ( "context" "log/slog" "net/http" "net/http/httptest" "sync" "testing" "time"
"tangled.org/core/spindle/config")
func TestInitLoggingDisabled(t *testing.T) { ctx := context.Background() cfg := config.Logging{ Endpoint: "", }
handler, shutdown, err := InitLogging(ctx, cfg) if err != nil { t.Fatalf("InitLogging returned error: %v", err) } if handler != nil { t.Error("expected handler to be nil when logging is disabled") } if shutdown == nil { t.Error("expected shutdown to be a no-op function, not nil") } if err := shutdown(ctx); err != nil { t.Errorf("no-op shutdown returned error: %v", err) }}
func TestInitLoggingEnabled(t *testing.T) { var mu sync.Mutex var logReceived bool
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Path == "/otlp/v1/logs" { mu.Lock() logReceived = true mu.Unlock() w.WriteHeader(http.StatusOK) } })) defer server.Close()
ctx := context.Background() endpoint := server.Listener.Addr().String()
cfg := config.Logging{ Endpoint: endpoint, ServiceName: "spindle-test-service", Insecure: true, }
handler, shutdown, err := InitLogging(ctx, cfg) if err != nil { t.Fatalf("InitLogging returned error: %v", err) } if handler == nil { t.Fatal("expected handler to be non-nil when logging is enabled") }
logger := slog.New(handler) logger.Info("hello from test log exporter")
shutdownCtx, cancel := context.WithTimeout(context.Background(), 2*time.Second) defer cancel() if err := shutdown(shutdownCtx); err != nil { t.Errorf("shutdown returned error: %v", err) }
mu.Lock() received := logReceived mu.Unlock()
if !received { t.Error("expected mock collector to receive the log request on /otlp/v1/logs") }}