add utils error Wrapper
This commit is contained in:
parent
a9e901fd39
commit
240d1ee929
2 changed files with 52 additions and 0 deletions
pkg/utils
12
pkg/utils/errorWrapper.go
Normal file
12
pkg/utils/errorWrapper.go
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/rs/zerolog"
|
||||||
|
)
|
||||||
|
|
||||||
|
func WrapError(mailError error, reasiningError error, logger zerolog.Logger) error {
|
||||||
|
logger.Error().Err(reasiningError).Msg(mailError.Error())
|
||||||
|
return fmt.Errorf("%w: %s", mailError, reasiningError)
|
||||||
|
}
|
40
pkg/utils/errorWrapper_test.go
Normal file
40
pkg/utils/errorWrapper_test.go
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"errors"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/rs/zerolog"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestErrorWrapper(t *testing.T) {
|
||||||
|
scanner, _, writer := mockLogger(t)
|
||||||
|
log := zerolog.New(writer)
|
||||||
|
|
||||||
|
TestError1 := errors.New("first error")
|
||||||
|
TestError2 := errors.New("secound error")
|
||||||
|
|
||||||
|
resulterror := WrapError(TestError1, TestError2, log)
|
||||||
|
|
||||||
|
assert.Equal(t, "first error: secound error", resulterror.Error())
|
||||||
|
|
||||||
|
scanner.Scan()
|
||||||
|
got := scanner.Text()
|
||||||
|
assert.Equal(t, "{\"level\":\"error\",\"error\":\"secound error\",\"message\":\"first error\"}", got)
|
||||||
|
|
||||||
|
assert.ErrorIs(t, resulterror, TestError1)
|
||||||
|
assert.NotErrorIs(t, resulterror, TestError2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://stackoverflow.com/questions/44119951/how-to-check-a-log-output-in-go-test
|
||||||
|
func mockLogger(t *testing.T) (*bufio.Scanner, *os.File, *os.File) {
|
||||||
|
reader, writer, err := os.Pipe()
|
||||||
|
if err != nil {
|
||||||
|
assert.Fail(t, "couldn't get os Pipe: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return bufio.NewScanner(reader), reader, writer
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue