mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2026-05-05 11:58:10 +00:00
94 lines
2.4 KiB
Go
94 lines
2.4 KiB
Go
package tlog_test
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/tinyauthapp/tinyauth/internal/model"
|
|
"github.com/tinyauthapp/tinyauth/internal/utils/tlog"
|
|
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
func TestNewLogger(t *testing.T) {
|
|
cfg := model.LogConfig{
|
|
Level: "debug",
|
|
Json: true,
|
|
Streams: model.LogStreams{
|
|
HTTP: model.LogStreamConfig{Enabled: true, Level: "info"},
|
|
App: model.LogStreamConfig{Enabled: true, Level: ""},
|
|
Audit: model.LogStreamConfig{Enabled: false, Level: ""},
|
|
},
|
|
}
|
|
|
|
logger := tlog.NewLogger(cfg)
|
|
|
|
assert.NotNil(t, logger)
|
|
assert.Equal(t, zerolog.InfoLevel, logger.HTTP.GetLevel())
|
|
assert.Equal(t, zerolog.DebugLevel, logger.App.GetLevel())
|
|
assert.Equal(t, zerolog.Disabled, logger.Audit.GetLevel())
|
|
}
|
|
|
|
func TestNewSimpleLogger(t *testing.T) {
|
|
logger := tlog.NewSimpleLogger()
|
|
assert.NotNil(t, logger)
|
|
assert.Equal(t, zerolog.InfoLevel, logger.HTTP.GetLevel())
|
|
assert.Equal(t, zerolog.InfoLevel, logger.App.GetLevel())
|
|
assert.Equal(t, zerolog.Disabled, logger.Audit.GetLevel())
|
|
}
|
|
|
|
func TestLoggerInit(t *testing.T) {
|
|
logger := tlog.NewSimpleLogger()
|
|
logger.Init()
|
|
|
|
assert.NotEqual(t, zerolog.Disabled, tlog.App.GetLevel())
|
|
}
|
|
|
|
func TestLoggerWithDisabledStreams(t *testing.T) {
|
|
cfg := model.LogConfig{
|
|
Level: "info",
|
|
Json: false,
|
|
Streams: model.LogStreams{
|
|
HTTP: model.LogStreamConfig{Enabled: false},
|
|
App: model.LogStreamConfig{Enabled: false},
|
|
Audit: model.LogStreamConfig{Enabled: false},
|
|
},
|
|
}
|
|
|
|
logger := tlog.NewLogger(cfg)
|
|
|
|
assert.Equal(t, zerolog.Disabled, logger.HTTP.GetLevel())
|
|
assert.Equal(t, zerolog.Disabled, logger.App.GetLevel())
|
|
assert.Equal(t, zerolog.Disabled, logger.Audit.GetLevel())
|
|
}
|
|
|
|
func TestLogStreamField(t *testing.T) {
|
|
var buf bytes.Buffer
|
|
|
|
cfg := model.LogConfig{
|
|
Level: "info",
|
|
Json: true,
|
|
Streams: model.LogStreams{
|
|
HTTP: model.LogStreamConfig{Enabled: true},
|
|
App: model.LogStreamConfig{Enabled: true},
|
|
Audit: model.LogStreamConfig{Enabled: true},
|
|
},
|
|
}
|
|
|
|
logger := tlog.NewLogger(cfg)
|
|
|
|
// Override output for HTTP logger to capture output
|
|
logger.HTTP = logger.HTTP.Output(&buf)
|
|
|
|
logger.HTTP.Info().Msg("test message")
|
|
|
|
var logEntry map[string]interface{}
|
|
err := json.Unmarshal(buf.Bytes(), &logEntry)
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, "http", logEntry["log_stream"])
|
|
assert.Equal(t, "test message", logEntry["message"])
|
|
}
|