feat(eventbus): enhance event handling with error propagation and global bus management

This commit is contained in:
mlogclub
2026-04-21 11:50:43 +08:00
parent 964b2ed6ce
commit df13d5ced5
4 changed files with 267 additions and 21 deletions
+26
View File
@@ -1,6 +1,7 @@
package eventbus
import (
"context"
"reflect"
"sync"
"testing"
@@ -59,6 +60,31 @@ func TestGetCreatesOnlyOneBusUnderConcurrency(t *testing.T) {
}
}
func TestRegisterReturnsConfiguredGlobalBus(t *testing.T) {
resetManagerForTest(t)
var handled bool
registered := Register[testEvent](WithErrorHandler[testEvent](func(ctx context.Context, err error) {
handled = true
}))
got := Get[testEvent]()
if registered != got {
t.Fatalf("expected registered bus to be returned by Get")
}
got.handleError(context.Background(), assertErr{})
if !handled {
t.Fatalf("expected registered error handler to be used")
}
}
type assertErr struct{}
func (assertErr) Error() string {
return "assert"
}
func resetManagerForTest(t *testing.T) {
t.Helper()