6
6
7
7
watermillmessage "github.com/ThreeDotsLabs/watermill/message"
8
8
"github.com/asyncapi/event-gateway/message"
9
+ "github.com/pkg/errors"
9
10
"github.com/stretchr/testify/assert"
10
11
"github.com/stretchr/testify/require"
11
12
)
@@ -17,6 +18,7 @@ func TestValidateMessage(t *testing.T) {
17
18
failWhenInvalid bool
18
19
expectedValidationErr string
19
20
expectedErr error
21
+ messageIsInvalid bool
20
22
}{
21
23
{
22
24
name : "Message is valid" ,
@@ -36,6 +38,11 @@ func TestValidateMessage(t *testing.T) {
36
38
expectedValidationErr : "testing error" ,
37
39
expectedErr : ErrMessageIsInvalid ,
38
40
},
41
+ {
42
+ name : "Skip message if message is invalid" ,
43
+ validator : erroredMessageValidator ,
44
+ messageIsInvalid : true ,
45
+ },
39
46
}
40
47
for _ , test := range tests {
41
48
t .Run (test .name , func (t * testing.T ) {
@@ -47,8 +54,12 @@ func TestValidateMessage(t *testing.T) {
47
54
assert .NoError (t , err )
48
55
}
49
56
50
- assert .Len (t , returnedMsgs , 1 )
51
- assert .Same (t , msg , returnedMsgs [0 ])
57
+ if test .messageIsInvalid {
58
+ assert .Empty (t , returnedMsgs )
59
+ } else {
60
+ assert .Len (t , returnedMsgs , 1 )
61
+ assert .Same (t , msg , returnedMsgs [0 ])
62
+ }
52
63
53
64
validationErr , err := message .ValidationErrorFromMessage (msg )
54
65
require .NoError (t , err )
@@ -66,3 +77,7 @@ func invalidMessageValidator(_ *watermillmessage.Message) (*message.ValidationEr
66
77
Errors : []string {"testing error" },
67
78
}, nil
68
79
}
80
+
81
+ func erroredMessageValidator (_ * watermillmessage.Message ) (* message.ValidationError , error ) {
82
+ return nil , errors .New ("random error" )
83
+ }
0 commit comments