49 lines
847 B
Go
49 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)
|
||
|
})
|
||
|
}
|