Skip to content
Snippets Groups Projects
Commit 212034e8 authored by Jack Robertson's avatar Jack Robertson
Browse files

test: add NewLoggerWithLeveler test

parent 7ff5003d
No related branches found
Tags v1.5.5
No related merge requests found
......@@ -17,7 +17,7 @@ type log struct {
Source slog.Source `json:"source"`
}
func TestNew(t *testing.T) {
func TestNewLogger(t *testing.T) {
// Arrange
var buf bytes.Buffer
......@@ -70,3 +70,43 @@ func TestNew(t *testing.T) {
assert.False(t, scanner.Scan())
assert.NoError(t, scanner.Err())
}
func TestNewLoggerWithLeveler(t *testing.T) {
// Arrange
var buf bytes.Buffer
programLevel := new(slog.LevelVar)
programLevel.Set(slog.LevelError)
logger := NewLogger(WithWriter(&buf), WithLeveler(programLevel))
// Act
logger.Warn("Never gonna give", slog.String("you", "up"))
programLevel.Set(slog.LevelWarn)
logger.Warn("Never gonna let", slog.String("you", "down"))
// Assert
scanner := bufio.NewScanner(&buf)
// Scan the first log
assert.True(t, scanner.Scan())
var (
rawWarnLog = scanner.Bytes()
warnLog = struct {
log
You string `json:"you"`
}{}
)
if err := json.Unmarshal(rawWarnLog, &warnLog); err != nil {
t.Errorf("Failed to unmarshal warn log: %s", err)
}
assert.Equal(t, "warn", warnLog.Status)
assert.Equal(t, "Never gonna let", warnLog.Message)
assert.Equal(t, "down", warnLog.You)
assert.WithinDuration(t, time.Now(), warnLog.Date, 1*time.Second)
// Assert that there are no more logs
assert.False(t, scanner.Scan())
assert.NoError(t, scanner.Err())
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment