github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/pkg/amplitude/loggers/ddev_logger_test.go (about)

     1  package loggers_test
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	"github.com/amplitude/analytics-go/amplitude/types"
     8  	"github.com/ddev/ddev/pkg/amplitude/loggers"
     9  	"github.com/ddev/ddev/pkg/globalconfig"
    10  	"github.com/ddev/ddev/pkg/output"
    11  	"github.com/sirupsen/logrus"
    12  	"github.com/stretchr/testify/suite"
    13  )
    14  
    15  func TestDdevLogger(t *testing.T) {
    16  	suite.Run(t, new(DdevLoggerSuite))
    17  }
    18  
    19  type DdevLoggerSuite struct {
    20  	suite.Suite
    21  }
    22  
    23  func (t *DdevLoggerSuite) TestLogger() {
    24  	var writer bytes.Buffer
    25  
    26  	// Replace output writer
    27  	output.UserOut.SetOutput(&writer)
    28  	output.UserErr.SetOutput(&writer)
    29  
    30  	// Enable debug logging
    31  	output.UserOut.Level = logrus.DebugLevel
    32  	output.UserErr.Level = logrus.DebugLevel
    33  	globalconfig.DdevDebug = true
    34  
    35  	require := t.Require()
    36  
    37  	logger := loggers.NewDdevLogger(true, true)
    38  
    39  	require.Implements((*types.Logger)(nil), logger)
    40  
    41  	writer.Reset()
    42  	logger.Debugf("test message 1")
    43  	require.Contains(writer.String(), "msg=\"test message 1\"")
    44  
    45  	writer.Reset()
    46  	logger.Errorf("test message 2")
    47  	require.Contains(writer.String(), "msg=\"test message 2\"")
    48  
    49  	writer.Reset()
    50  	logger.Infof("test message 3")
    51  	require.Contains(writer.String(), "msg=\"test message 3\"")
    52  
    53  	writer.Reset()
    54  	logger.Warnf("test message 4")
    55  	require.Contains(writer.String(), "msg=\"test message 4\"")
    56  }