diff --git a/logger_test.go b/logger_test.go
index adde38db8994c54f7aa84135d27fc22455916f42..b453de4335b243d116579878f2a148181fccf9c7 100644
--- a/logger_test.go
+++ b/logger_test.go
@@ -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())
+}