diff options
Diffstat (limited to 'internal/logger/logger_test.go')
-rw-r--r-- | internal/logger/logger_test.go | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/internal/logger/logger_test.go b/internal/logger/logger_test.go new file mode 100644 index 0000000..7316dbf --- /dev/null +++ b/internal/logger/logger_test.go @@ -0,0 +1,82 @@ +package logger + +import ( + "fmt" + "io/ioutil" + "os" + "strings" + "testing" + "time" + + log "github.com/sirupsen/logrus" + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitlab-shell/internal/config" +) + +func TestConfigure(t *testing.T) { + tmpFile, err := ioutil.TempFile(os.TempDir(), "logtest-") + require.NoError(t, err) + defer tmpFile.Close() + + config := config.Config{ + LogFile: tmpFile.Name(), + LogFormat: "json", + } + + err = Configure(&config) + + require.NoError(t, err) + + log.Info("this is a test") + + tmpFile.Close() + + data, err := ioutil.ReadFile(tmpFile.Name()) + require.NoError(t, err) + require.True(t, strings.Contains(string(data), `msg":"this is a test"`)) +} + +func TestElapsedTimeMs(t *testing.T) { + testCases := []struct { + delta float64 + expected float64 + }{ + { + delta: 123.0, + expected: 123.0, + }, + { + delta: 123.4, + expected: 123.4, + }, + { + delta: 123.45, + expected: 123.45, + }, + { + delta: 123.456, + expected: 123.456, + }, + + { + delta: 123.4567, + expected: 123.457, + }, + { + delta: 123.4564, + expected: 123.456, + }, + } + + for _, tc := range testCases { + duration := fmt.Sprintf("%fms", tc.delta) + + t.Run(duration, func(t *testing.T) { + delta, _ := time.ParseDuration(duration) + start := time.Now() + end := start.Add(delta) + require.Equal(t, tc.expected, ElapsedTimeMs(start, end)) + require.InDelta(t, tc.expected, ElapsedTimeMs(start, end), 0.001) + }) + } +} |