Files
upstream-watermill/message/router/middleware/instant_ack_test.go
2026-09-15 21:27:46 +05:00

34 lines
739 B
Go

package middleware
import (
"testing"
"github.com/ThreeDotsLabs/watermill/message"
"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
)
func TestInstantAck(t *testing.T) {
producedMessages := message.Messages{message.NewMessage("2", nil)}
producedErr := errors.New("foo")
h := InstantAck(func(msg *message.Message) (messages []*message.Message, e error) {
return producedMessages, producedErr
})
msg := message.NewMessage("1", nil)
handlerMessages, handlerErr := h(msg)
assert.EqualValues(t, producedMessages, handlerMessages)
assert.Equal(t, producedErr, handlerErr)
select {
case <-msg.Acked():
// ok
case <-msg.Nacked():
t.Fatal("expected ack, not nack")
default:
t.Fatal("no ack received")
}
}