package main import ( "log/slog" "testing" ) func TestBuildLogger_ValidLevels(t *testing.T) { for _, level := range []string{"debug", "info", "warn", "error"} { for _, format := range []string{"tint", "json", "human"} { logger, err := buildLogger(level, format) if err != nil { t.Fatalf("buildLogger(%q, %q) unexpected error: %v", level, format, err) } if logger == nil { t.Fatalf("buildLogger(%q, %q) returned nil logger", level, format) } } } } func TestBuildLogger_InvalidLevel(t *testing.T) { _, err := buildLogger("fatal", "json") if err == nil { t.Fatal("expected error for invalid level") } } func TestBuildLogger_InvalidFormat(t *testing.T) { _, err := buildLogger("info", "xml") if err == nil { t.Fatal("expected error for invalid format") } } func TestBuildLogger_LevelEnforced(t *testing.T) { logger, err := buildLogger("error", "human") if err != nil { t.Fatalf("unexpected error: %v", err) } if logger.Enabled(nil, slog.LevelInfo) { t.Fatal("error-level logger should not enable info") } if !logger.Enabled(nil, slog.LevelError) { t.Fatal("error-level logger should enable error") } }