mirror of
https://github.com/gookit/event
synced 2025-12-24 10:30:50 +08:00
fix: #8 must check the '*' global listeners
This commit is contained in:
32
issues_test.go
Normal file
32
issues_test.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package event_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/gookit/event"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
type testNotify struct {}
|
||||
|
||||
func (notify *testNotify) Handle(e event.Event) error {
|
||||
isRun = true
|
||||
return nil
|
||||
}
|
||||
|
||||
var isRun = false
|
||||
|
||||
// https://github.com/gookit/event/issues/8
|
||||
func TestIssue_8(t *testing.T) {
|
||||
notify := testNotify{}
|
||||
|
||||
event.On("*", ¬ify)
|
||||
err, _ := event.Fire("test_notify", event.M{})
|
||||
assert.Nil(t, err)
|
||||
assert.True(t, isRun)
|
||||
|
||||
event.On("test_notify", ¬ify)
|
||||
err, _ = event.Fire("test_notify", event.M{})
|
||||
assert.Nil(t, err)
|
||||
assert.True(t, isRun)
|
||||
}
|
||||
@@ -149,9 +149,12 @@ func (em *Manager) Trigger(name string, params M) (error, Event) {
|
||||
func (em *Manager) Fire(name string, params M) (err error, e Event) {
|
||||
name = goodName(name)
|
||||
|
||||
// not found listeners
|
||||
if !em.HasListeners(name) {
|
||||
return
|
||||
// not found listeners.
|
||||
if false == em.HasListeners(name) {
|
||||
// NOTICE: must check the '*' global listeners
|
||||
if name != Wildcard && false == em.HasListeners(Wildcard) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// call listeners use defined Event
|
||||
|
||||
Reference in New Issue
Block a user