Skip to content
Snippets Groups Projects
logging_test.go 1.36 KiB
Newer Older
Axel Prel's avatar
Axel Prel committed
package orusapi_test

import (
	"bytes"
	"testing"

	"github.com/rs/zerolog"
	"github.com/stretchr/testify/assert"
Axel Prel's avatar
Axel Prel committed

	"orus.io/orus-io/go-orusapi"
)

func TestLogging(t *testing.T) {
	var (
		buf bytes.Buffer
	)

	t.Run("verbose flag", func(t *testing.T) {
		var o orusapi.LoggingOptions
		o.Setup(&buf)
		o.Level = "warn"
		o.BuildLogger()
		assert.Equal(t, zerolog.WarnLevel, o.Logger().GetLevel())
		o.Verbose()
		o.BuildLogger()
		assert.Equal(t, zerolog.InfoLevel, o.Logger().GetLevel())
		o.Verbose()
		o.BuildLogger()
		assert.Equal(t, zerolog.DebugLevel, o.Logger().GetLevel())
		o.Verbose()
		o.BuildLogger()
		assert.Equal(t, zerolog.TraceLevel, o.Logger().GetLevel())
	})
	t.Run("level flag", func(t *testing.T) {
		var o orusapi.LoggingOptions
		o.Setup(&buf)
		o.Level = zerolog.LevelFatalValue
		o.BuildLogger()
		assert.Equal(t, zerolog.FatalLevel, o.Logger().GetLevel())
		o.Level = zerolog.LevelInfoValue
		o.BuildLogger()
		assert.Equal(t, zerolog.InfoLevel, o.Logger().GetLevel())
	})
	t.Run("format flag", func(t *testing.T) {
		var o orusapi.LoggingOptions
		o.Setup(&buf)
		o.Format = "pretty"
		o.BuildLogger()
		log := o.Logger()
		log.Warn().Msg("this is a warning")
		assert.Contains(t, buf.String(), "WRN")
		buf.Reset()
		o.Format = "json"
		o.BuildLogger()
		log = o.Logger()
		log.Warn().Msg("this is a warning")
		assert.Contains(t, buf.String(), "{")
	})