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) }) }