snapshot of https://github.com/ThreeDotsLabs/watermill.git (master, 2026-09-15; blobs > 131072B omitted)
Some checks failed
master / ci (push) Failing after 0s
Some checks failed
master / ci (push) Failing after 0s
This commit is contained in:
58
message/router/middleware/ignore_errors_test.go
Normal file
58
message/router/middleware/ignore_errors_test.go
Normal file
@@ -0,0 +1,58 @@
|
||||
package middleware_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/ThreeDotsLabs/watermill/message"
|
||||
"github.com/ThreeDotsLabs/watermill/message/router/middleware"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestIgnoreErrors_Middleware(t *testing.T) {
|
||||
testCases := []struct {
|
||||
Name string
|
||||
IgnoredErrors []error
|
||||
TestError error
|
||||
ShouldBeIgnored bool
|
||||
}{
|
||||
{
|
||||
Name: "ignored_error",
|
||||
IgnoredErrors: []error{errors.New("test")},
|
||||
TestError: errors.New("test"),
|
||||
ShouldBeIgnored: true,
|
||||
},
|
||||
{
|
||||
Name: "not_ignored_error",
|
||||
IgnoredErrors: []error{errors.New("test")},
|
||||
TestError: errors.New("not_ignored"),
|
||||
ShouldBeIgnored: false,
|
||||
},
|
||||
{
|
||||
Name: "wrapped_error_should_ignore",
|
||||
IgnoredErrors: []error{errors.New("test")},
|
||||
TestError: errors.Wrap(errors.New("test"), "wrapped"),
|
||||
ShouldBeIgnored: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, c := range testCases {
|
||||
t.Run(c.Name, func(t *testing.T) {
|
||||
m := middleware.NewIgnoreErrors(c.IgnoredErrors)
|
||||
|
||||
messagesToProduce := []*message.Message{message.NewMessage("1", nil)}
|
||||
|
||||
producedMessages, err := m.Middleware(func(msg *message.Message) ([]*message.Message, error) {
|
||||
return messagesToProduce, c.TestError
|
||||
})(nil)
|
||||
|
||||
if c.ShouldBeIgnored {
|
||||
assert.NoError(t, err)
|
||||
} else {
|
||||
assert.Equal(t, c.TestError, err)
|
||||
}
|
||||
|
||||
assert.Equal(t, messagesToProduce, producedMessages)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user