Borg/pkg/logger/logger_test.go

65 lines
1.3 KiB
Go
Raw Normal View History

package logger
import (
"bytes"
"context"
"io"
"os"
"log/slog"
"testing"
)
func TestNew(t *testing.T) {
// Test non-verbose logger
var buf bytes.Buffer
oldStderr := os.Stderr
r, w, _ := os.Pipe()
os.Stderr = w
log := New(false)
log.Info("info message")
log.Debug("debug message")
w.Close()
os.Stderr = oldStderr
io.Copy(&buf, r)
if !bytes.Contains(buf.Bytes(), []byte("info message")) {
t.Errorf("expected info message to be logged")
}
if bytes.Contains(buf.Bytes(), []byte("debug message")) {
t.Errorf("expected debug message not to be logged")
}
// Test verbose logger
buf.Reset()
r, w, _ = os.Pipe()
os.Stderr = w
log = New(true)
log.Info("info message")
log.Debug("debug message")
w.Close()
os.Stderr = oldStderr
io.Copy(&buf, r)
if !bytes.Contains(buf.Bytes(), []byte("info message")) {
t.Errorf("expected info message to be logged")
}
if !bytes.Contains(buf.Bytes(), []byte("debug message")) {
t.Errorf("expected debug message to be logged")
}
}
func TestNew_Level(t *testing.T) {
log := New(true)
if !log.Enabled(context.Background(), slog.LevelDebug) {
t.Errorf("expected debug level to be enabled")
}
log = New(false)
if log.Enabled(context.Background(), slog.LevelDebug) {
t.Errorf("expected debug level to be disabled")
}
}