package logging import ( "bytes" "log/slog" "testing" "git.runcible.io/learning/pulley/internal/assert" ) func TestParseLevel(t *testing.T) { testTable := []struct { name string level string want slog.Level }{ { name: "Default", level: "", want: slog.LevelInfo, }, { name: "Lowercase", level: "debug", want: slog.LevelDebug, }, { name: "Mixed case", level: "wArN", want: slog.LevelWarn, }, { name: "Calitalized", level: "ERROR", want: slog.LevelError, }, { name: "Info level", level: "info", want: slog.LevelInfo, }, } for _, test := range testTable { t.Run(test.name, func(t *testing.T) { got := parseLogLevel(test.level) assert.Equal(t, got, test.want) }) } } func TestInitLogging(t *testing.T) { spy := bytes.Buffer{} msg := "Observability" logger := InitLogging("info", &spy, false) logger.Info(msg) content := spy.String() assert.StringContains(t, content, msg) }