superkit/event/event_test.go
2024-06-23 08:40:24 +02:00

32 lines
676 B
Go

package event
import (
"context"
"reflect"
"testing"
)
func TestEventSubscribeEmit(t *testing.T) {
expect := 1
ctx, cancel := context.WithCancel(context.Background())
Subscribe("foo.a", func(_ context.Context, event any) {
defer cancel()
value, ok := event.(int)
if !ok {
t.Errorf("expected int got %v", reflect.TypeOf(event))
}
if value != 1 {
t.Errorf("expected %d got %d", expect, value)
}
})
Emit("foo.a", expect)
<-ctx.Done()
}
func TestUnsubscribe(t *testing.T) {
sub := Subscribe("foo.b", func(_ context.Context, _ any) {})
Unsubscribe(sub)
if _, ok := stream.subs["foo.b"]; ok {
t.Errorf("expected topic foo.bar to be deleted")
}
}