Skip to content
Snippets Groups Projects
logging_test.go 1.08 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"
	"github.com/stretchr/testify/require"
Axel Prel's avatar
Axel Prel committed

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

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

Axel Prel's avatar
Axel Prel committed
	var o orusapi.LoggingOptions
	require.NoError(t, o.Setup(&log, &buf))

Axel Prel's avatar
Axel Prel committed
	assert.Equal(t, zerolog.WarnLevel, o.Logger().GetLevel())
Axel Prel's avatar
Axel Prel committed
	assert.Equal(t, zerolog.InfoLevel, o.Logger().GetLevel())
Axel Prel's avatar
Axel Prel committed
	assert.Equal(t, zerolog.DebugLevel, o.Logger().GetLevel())
Axel Prel's avatar
Axel Prel committed
	assert.Equal(t, zerolog.TraceLevel, o.Logger().GetLevel())
Axel Prel's avatar
Axel Prel committed
	require.NoError(t, o.Level(zerolog.LevelFatalValue))
Axel Prel's avatar
Axel Prel committed
	assert.Equal(t, zerolog.FatalLevel, o.Logger().GetLevel())
Axel Prel's avatar
Axel Prel committed
	require.NoError(t, o.Level(zerolog.LevelInfoValue))
Axel Prel's avatar
Axel Prel committed
	assert.Equal(t, zerolog.InfoLevel, o.Logger().GetLevel())

	require.NoError(t, o.Format("pretty"))
	log.Warn().Msg("this is a warning")
	assert.Contains(t, buf.String(), "WRN")

	buf.Reset()
	require.NoError(t, o.Format("json"))
	log.Warn().Msg("this is a warning")
	assert.Contains(t, buf.String(), "{")
}