52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
package logger
|
|
|
|
import (
|
|
"io/ioutil"
|
|
oslog "log"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestLoggerLogic(t *testing.T) {
|
|
tmpfile, err := ioutil.TempFile("", "log.")
|
|
if err != nil {
|
|
oslog.Fatal(err)
|
|
}
|
|
defer os.Remove(tmpfile.Name())
|
|
|
|
conf := Config{File: tmpfile.Name(), Level: "warn", MuteStdout: false}
|
|
log, err := New(conf)
|
|
if err != nil {
|
|
oslog.Fatal(err)
|
|
}
|
|
|
|
t.Run("Messages arround the level", func(t *testing.T) {
|
|
log.Debugf("debug message")
|
|
log.Errorf("error message")
|
|
|
|
res, err := ioutil.ReadAll(tmpfile)
|
|
if err != nil {
|
|
oslog.Fatal(err)
|
|
}
|
|
require.Less(t, strings.Index(string(res), "debug message"), 0)
|
|
require.Greater(t, strings.Index(string(res), "error message"), 0)
|
|
})
|
|
}
|
|
|
|
func TestLoggerNegative(t *testing.T) {
|
|
t.Run("Bad file name", func(t *testing.T) {
|
|
conf := Config{File: "", Level: "debug", MuteStdout: true}
|
|
_, err := New(conf)
|
|
require.Error(t, err, "invalid logger config")
|
|
})
|
|
|
|
t.Run("Bad level", func(t *testing.T) {
|
|
conf := Config{File: "asdafad", Level: "wegretryjt", MuteStdout: true}
|
|
_, err := New(conf)
|
|
require.Error(t, err, "invalid logger config")
|
|
})
|
|
}
|