48 lines
847 B
Go
48 lines
847 B
Go
package logging
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type WriteErrorBuffer struct{}
|
|
|
|
func (*WriteErrorBuffer) Write(_ []byte) (int, error) {
|
|
return 0, errors.New("cannot write")
|
|
}
|
|
|
|
func TestFileBackendWrite(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
t.Run("It should write the logs to the buffer", func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
buf := new(bytes.Buffer)
|
|
b := NewIoBackend(buf)
|
|
|
|
err := b.Write(&Record{
|
|
Level: Info,
|
|
Message: "my log line",
|
|
})
|
|
|
|
require.NoError(t, err)
|
|
require.Contains(t, buf.String(), "my log line")
|
|
})
|
|
|
|
t.Run("It should return an error if it cannot write the log", func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
buf := new(WriteErrorBuffer)
|
|
b := NewIoBackend(buf)
|
|
|
|
err := b.Write(&Record{
|
|
Level: Info,
|
|
Message: "my log line",
|
|
})
|
|
|
|
require.Error(t, err)
|
|
})
|
|
}
|