mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 18:10:48 +08:00
203 lines
3.5 KiB
Go
203 lines
3.5 KiB
Go
package logger
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/matryer/is"
|
|
)
|
|
|
|
func TestByteBufferLogger(t *testing.T) {
|
|
|
|
is := is.New(t)
|
|
|
|
// Create new byte buffer logger
|
|
var buf bytes.Buffer
|
|
|
|
myLogger := New(&buf)
|
|
myLogger.SetLogLevel(TRACE)
|
|
|
|
tests := map[uint8]string{
|
|
TRACE: "TRACE | I am a message!\n",
|
|
DEBUG: "DEBUG | I am a message!\n",
|
|
WARNING: "WARN | I am a message!\n",
|
|
INFO: "INFO | I am a message!\n",
|
|
ERROR: "ERROR | I am a message!\n",
|
|
}
|
|
|
|
methods := map[uint8]func(string, ...interface{}) error{
|
|
TRACE: myLogger.Trace,
|
|
DEBUG: myLogger.Debug,
|
|
WARNING: myLogger.Warning,
|
|
INFO: myLogger.Info,
|
|
ERROR: myLogger.Error,
|
|
}
|
|
|
|
for level, expected := range tests {
|
|
|
|
buf.Reset()
|
|
|
|
method := methods[level]
|
|
|
|
// Write message
|
|
err := method("I am a message!")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
actual := buf.String()
|
|
|
|
is.Equal(actual, expected)
|
|
}
|
|
|
|
}
|
|
func TestCustomLogger(t *testing.T) {
|
|
|
|
is := is.New(t)
|
|
|
|
// Create new byte buffer logger
|
|
var buf bytes.Buffer
|
|
|
|
myLogger := New(&buf)
|
|
myLogger.SetLogLevel(TRACE)
|
|
customLogger := myLogger.CustomLogger("Test")
|
|
|
|
tests := map[uint8]string{
|
|
TRACE: "TRACE | Test | I am a message!\n",
|
|
DEBUG: "DEBUG | Test | I am a message!\n",
|
|
WARNING: "WARN | Test | I am a message!\n",
|
|
INFO: "INFO | Test | I am a message!\n",
|
|
ERROR: "ERROR | Test | I am a message!\n",
|
|
}
|
|
|
|
methods := map[uint8]func(string, ...interface{}) error{
|
|
TRACE: customLogger.Trace,
|
|
DEBUG: customLogger.Debug,
|
|
WARNING: customLogger.Warning,
|
|
INFO: customLogger.Info,
|
|
ERROR: customLogger.Error,
|
|
}
|
|
|
|
for level, expected := range tests {
|
|
|
|
buf.Reset()
|
|
|
|
method := methods[level]
|
|
|
|
// Write message
|
|
err := method("I am a message!")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
actual := buf.String()
|
|
|
|
is.Equal(actual, expected)
|
|
}
|
|
|
|
}
|
|
func TestWriteln(t *testing.T) {
|
|
|
|
is := is.New(t)
|
|
|
|
// Create new byte buffer logger
|
|
var buf bytes.Buffer
|
|
|
|
myLogger := New(&buf)
|
|
myLogger.SetLogLevel(DEBUG)
|
|
|
|
buf.Reset()
|
|
|
|
// Write message
|
|
err := myLogger.Writeln("I am a message!")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
actual := buf.String()
|
|
|
|
is.Equal(actual, "I am a message!\n")
|
|
|
|
buf.Reset()
|
|
|
|
// Write message
|
|
err = myLogger.Write("I am a message!")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
actual = buf.String()
|
|
|
|
is.Equal(actual, "I am a message!")
|
|
|
|
}
|
|
|
|
func TestLogLevel(t *testing.T) {
|
|
|
|
is := is.New(t)
|
|
|
|
// Create new byte buffer logger
|
|
var buf bytes.Buffer
|
|
|
|
myLogger := New(&buf)
|
|
myLogger.SetLogLevel(ERROR)
|
|
|
|
tests := map[uint8]string{
|
|
TRACE: "",
|
|
DEBUG: "",
|
|
WARNING: "",
|
|
INFO: "",
|
|
ERROR: "ERROR | I am a message!\n",
|
|
}
|
|
|
|
methods := map[uint8]func(string, ...interface{}) error{
|
|
TRACE: myLogger.Trace,
|
|
DEBUG: myLogger.Debug,
|
|
WARNING: myLogger.Warning,
|
|
INFO: myLogger.Info,
|
|
ERROR: myLogger.Error,
|
|
}
|
|
|
|
for level := range tests {
|
|
|
|
method := methods[level]
|
|
|
|
// Write message
|
|
err := method("I am a message!")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
}
|
|
actual := buf.String()
|
|
|
|
is.Equal(actual, "ERROR | I am a message!\n")
|
|
}
|
|
|
|
func TestFileLogger(t *testing.T) {
|
|
|
|
is := is.New(t)
|
|
|
|
// Create new byte buffer logger
|
|
file, err := ioutil.TempFile(".", "wailsv2test")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer os.Remove(file.Name())
|
|
|
|
myLogger := New(file)
|
|
myLogger.SetLogLevel(DEBUG)
|
|
|
|
// Write message
|
|
err = myLogger.Info("I am a message!")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
actual, err := ioutil.ReadFile(file.Name())
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
is.Equal(string(actual), "INFO | I am a message!\n")
|
|
|
|
}
|