Browse Source

Fix slog nil pointer error (#3563)

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 <maksim.nabokikh@flant.com>
pull/3565/head
Maksim Nabokikh 2 years ago committed by GitHub
parent
commit
203b084e17
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      cmd/dex/serve.go
  2. 29
      cmd/dex/serve_test.go

4
cmd/dex/serve.go

@ -520,11 +520,11 @@ func newLogger(level slog.Level, format string) (*slog.Logger, error) {
var handler slog.Handler var handler slog.Handler
switch strings.ToLower(format) { switch strings.ToLower(format) {
case "", "text": case "", "text":
slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{ handler = slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
Level: level, Level: level,
}) })
case "json": case "json":
slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{ handler = slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{
Level: level, Level: level,
}) })
default: default:

29
cmd/dex/serve_test.go

@ -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)
})
}
Loading…
Cancel
Save