autogits/bots-common/log_test.go

47 lines
970 B
Go
Raw Normal View History

2024-07-07 21:08:41 +02:00
package common
import (
"regexp"
"testing"
)
type TestWriter struct {
str string
}
func (s *TestWriter) WriteString(str2 string) (int, error) {
s.str += str2
return len(s.str), nil
}
func TestLogging(t *testing.T) {
t.Run("basic logging", func(t *testing.T) {
var strWriter, errWriter TestWriter
if len(strWriter.str) != 0 || len(errWriter.str) != 0 {
t.Fatal("non-null empty logging?")
}
logger := CreateStdoutLogger(&strWriter, &errWriter)
logger.LogError("%d", 100)
logger.Log("OKA %d Done", 77)
logger.Log("Another line")
const prefixMatch = `\[\d+\] \[[^\]]+\]: `
if ok, err := regexp.MatchString("^"+prefixMatch+"100\n$", errWriter.str); !ok {
if err != nil {
t.Logf("err: %v", err)
}
t.Fatal(errWriter)
}
if ok, err := regexp.MatchString("^"+prefixMatch+"OKA 77 Done\n"+prefixMatch+"Another line\n$", strWriter.str); !ok {
if err != nil {
t.Logf("err: %v", err)
}
t.Fatal(strWriter.str)
}
})
}