github.com/argoproj/argo-cd/v3@v3.2.1/util/log/logrus_test.go (about)

     1  package log
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/sirupsen/logrus"
     8  	"github.com/stretchr/testify/assert"
     9  
    10  	"github.com/argoproj/argo-cd/v3/common"
    11  )
    12  
    13  func TestCreateFormatter(t *testing.T) {
    14  	t.Run("log format is json", func(t *testing.T) {
    15  		result := CreateFormatter("json")
    16  		assert.Equal(t, &logrus.JSONFormatter{}, result)
    17  	})
    18  	t.Run("log format is text", func(t *testing.T) {
    19  		t.Run("FORCE_LOG_COLORS == 1", func(t *testing.T) {
    20  			t.Setenv("FORCE_LOG_COLORS", "1")
    21  			result := CreateFormatter("text")
    22  			assert.Equal(t, &logrus.TextFormatter{ForceColors: true}, result)
    23  		})
    24  		t.Run("FORCE_LOG_COLORS != 1", func(t *testing.T) {
    25  			t.Setenv("FORCE_LOG_COLORS", "0")
    26  			result := CreateFormatter("text")
    27  			assert.Equal(t, &logrus.TextFormatter{}, result)
    28  		})
    29  		t.Run(common.EnvLogFormatEnableFullTimestamp+" == 1", func(t *testing.T) {
    30  			t.Setenv(common.EnvLogFormatEnableFullTimestamp, "1")
    31  			result := CreateFormatter("text")
    32  			assert.Equal(t, &logrus.TextFormatter{FullTimestamp: true}, result)
    33  		})
    34  		t.Run(common.EnvLogFormatEnableFullTimestamp+" != 1", func(t *testing.T) {
    35  			t.Setenv(common.EnvLogFormatEnableFullTimestamp, "0")
    36  			result := CreateFormatter("text")
    37  			assert.Equal(t, &logrus.TextFormatter{}, result)
    38  		})
    39  		t.Run(common.EnvLogFormatTimestamp+" is not set", func(t *testing.T) {
    40  			result := CreateFormatter("text")
    41  			assert.Equal(t, &logrus.TextFormatter{}, result)
    42  		})
    43  		t.Run(common.EnvLogFormatTimestamp+" is set", func(t *testing.T) {
    44  			t.Setenv(common.EnvLogFormatTimestamp, time.RFC3339Nano)
    45  			result := CreateFormatter("text")
    46  			assert.Equal(t, &logrus.TextFormatter{TimestampFormat: time.RFC3339Nano}, result)
    47  		})
    48  	})
    49  	t.Run("log format is not json or text", func(t *testing.T) {
    50  		result := CreateFormatter("xml")
    51  		assert.Equal(t, &logrus.JSONFormatter{}, result)
    52  	})
    53  }