33 lines
775 B
Go
33 lines
775 B
Go
package outbound
|
|
|
|
import (
|
|
"context"
|
|
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
|
|
"git.wisehodl.dev/jay/go-honeybee/types"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestRunForwarder(t *testing.T) {
|
|
t.Run("message passes through to inbox", func(t *testing.T) {
|
|
id := "wss://test"
|
|
messages := make(chan types.ReceivedMessage, 1)
|
|
inbox := make(chan InboxMessage, 1)
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
|
|
go RunForwarder(id, ctx, messages, inbox)
|
|
|
|
messages <- types.ReceivedMessage{Data: []byte("hello"), ReceivedAt: time.Now()}
|
|
|
|
honeybeetest.Eventually(t, func() bool {
|
|
select {
|
|
case msg := <-inbox:
|
|
return string(msg.Data) == "hello" && msg.ID == "wss://test"
|
|
default:
|
|
return false
|
|
}
|
|
}, "expected message")
|
|
})
|
|
}
|