Files

94 lines
2.7 KiB
Go

package publish_test
import (
"errors"
"testing"
"github.com/ThreeDotsLabs/watermill"
"go.uber.org/mock/gomock"
"github.com/hanzo-fi/go-libs/v5/pkg/messaging/publish"
logging "github.com/hanzo-fi/go-libs/v5/pkg/observe/log"
)
func TestWatermillLoggerAdapter_Error(t *testing.T) {
t.Parallel()
ctrl := gomock.NewController(t)
mockLogger := logging.NewMockLogger(ctrl)
fields := watermill.LogFields{"key": "value"}
err := errors.New("test error")
mockLogger.EXPECT().WithFields(gomock.Any()).Times(2).Return(mockLogger)
mockLogger.EXPECT().Error("error message").Return()
logger := publish.NewWatermillLoggerAdapter(mockLogger, false)
logger.Error("error message", err, fields)
}
func TestWatermillLoggerAdapter_Info(t *testing.T) {
t.Parallel()
ctrl := gomock.NewController(t)
mockLogger := logging.NewMockLogger(ctrl)
fields := watermill.LogFields{"key": "value"}
mockLogger.EXPECT().WithFields(gomock.Any()).Return(mockLogger)
mockLogger.EXPECT().Info("info message").Return()
logger := publish.NewWatermillLoggerAdapter(mockLogger, false)
logger.Info("info message", fields)
}
func TestWatermillLoggerAdapter_Debug(t *testing.T) {
t.Parallel()
ctrl := gomock.NewController(t)
mockLogger := logging.NewMockLogger(ctrl)
fields := watermill.LogFields{"key": "value"}
mockLogger.EXPECT().WithFields(gomock.Any()).Return(mockLogger)
mockLogger.EXPECT().Debug("debug message").Return()
logger := publish.NewWatermillLoggerAdapter(mockLogger, false)
logger.Debug("debug message", fields)
}
func TestWatermillLoggerAdapter_Trace(t *testing.T) {
t.Parallel()
ctrl := gomock.NewController(t)
mockLogger := logging.NewMockLogger(ctrl)
fields := watermill.LogFields{"key": "value"}
mockLogger.EXPECT().WithFields(gomock.Any()).Return(mockLogger)
mockLogger.EXPECT().Debug("trace message").Return()
logger := publish.NewWatermillLoggerAdapter(mockLogger, true)
logger.Trace("trace message", fields)
}
func TestWatermillLoggerAdapter_Trace_Disabled(t *testing.T) {
t.Parallel()
ctrl := gomock.NewController(t)
mockLogger := logging.NewMockLogger(ctrl)
fields := watermill.LogFields{"key": "value"}
logger := publish.NewWatermillLoggerAdapter(mockLogger, false)
logger.Trace("trace message", fields)
}
func TestWatermillLoggerAdapter_WithPreservesTraceSetting(t *testing.T) {
t.Parallel()
ctrl := gomock.NewController(t)
mockLogger := logging.NewMockLogger(ctrl)
mockLogger.EXPECT().WithFields(gomock.Any()).Times(2).Return(mockLogger)
mockLogger.EXPECT().Debug("trace message").Return()
logger := publish.NewWatermillLoggerAdapter(mockLogger, true).With(watermill.LogFields{"component": "test"})
logger.Trace("trace message", watermill.LogFields{"key": "value"})
}