Skip to content

Commit

Permalink
Fix slog nil pointer error (#3563)
Browse files Browse the repository at this point in the history
The problem caused by the mistake in the newLogger function. The nil value is returned even with the valid log format.

Signed-off-by: m.nabokikh <[email protected]>
  • Loading branch information
nabokihms authored Jun 3, 2024
1 parent 9769f9b commit 203b084
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 2 deletions.
4 changes: 2 additions & 2 deletions cmd/dex/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -520,11 +520,11 @@ func newLogger(level slog.Level, format string) (*slog.Logger, error) {
var handler slog.Handler
switch strings.ToLower(format) {
case "", "text":
slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
handler = slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
Level: level,
})
case "json":
slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{
handler = slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{
Level: level,
})
default:
Expand Down
29 changes: 29 additions & 0 deletions cmd/dex/serve_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package main

import (
"log/slog"
"testing"

"github.com/stretchr/testify/require"
)

func TestNewLogger(t *testing.T) {
t.Run("JSON", func(t *testing.T) {
logger, err := newLogger(slog.LevelInfo, "json")
require.NoError(t, err)
require.NotEqual(t, (*slog.Logger)(nil), logger)
})

t.Run("Text", func(t *testing.T) {
logger, err := newLogger(slog.LevelError, "text")
require.NoError(t, err)
require.NotEqual(t, (*slog.Logger)(nil), logger)
})

t.Run("Unknown", func(t *testing.T) {
logger, err := newLogger(slog.LevelError, "gofmt")
require.Error(t, err)
require.Equal(t, "log format is not one of the supported values (json, text): gofmt", err.Error())
require.Equal(t, (*slog.Logger)(nil), logger)
})
}

0 comments on commit 203b084

Please sign in to comment.