diff --git a/event.go b/event.go index bcf1376..adaf880 100644 --- a/event.go +++ b/event.go @@ -207,12 +207,6 @@ func (e *BasicEvent) SetName(name string) *BasicEvent { return e } -// Clone new instance -func (e *BasicEvent) Clone() Event { - var cp = *e - return &cp -} - // SetData set data to the event func (e *BasicEvent) SetData(data M) Event { if data != nil { diff --git a/event_test.go b/event_test.go index dfdbb22..85682fd 100644 --- a/event_test.go +++ b/event_test.go @@ -118,5 +118,6 @@ func TestEvent(t *testing.T) { e1 := &event.BasicEvent{} e1.Set("k", "v") assert.Equal(t, "v", e1.Get("k")) - assert.NotEmpty(t, e1.Clone()) + // assert.NotEmpty(t, e1.Clone()) + assert.NotEmpty(t, e1.Context()) } diff --git a/issues_test.go b/issues_test.go index 2b017e8..1ab8385 100644 --- a/issues_test.go +++ b/issues_test.go @@ -162,6 +162,34 @@ func TestIssues_67(t *testing.T) { assert.Eq(t, total, counter) } +type MyEventI68 struct { + event.BasicEvent + customData string +} + +func (e *MyEventI68) CustomData() string { + return e.customData +} + +// https://github.com/gookit/event/issues/68 Custom events failed to execute +func TestIssues_68(t *testing.T) { + e := &MyEventI68{customData: "hello"} + e.SetName("e1") + defer event.Reset() + assert.NoErr(t, event.AddEvent(e)) + + // add listener + event.On("e1", event.ListenerFunc(func(e event.Event) error { + fmt.Printf("custom Data: %s\n", e.(*MyEventI68).CustomData()) + return nil + })) + + // trigger + err, e2 := event.Fire("e1", nil) + assert.NoErr(t, err) + assert.Eq(t, "e1", e2.Name()) +} + // https://github.com/gookit/event/issues/78 // It is expected to support event passing context, timeout control, and log trace passing such as trace ID information. // 希望事件支持通过上下文,超时控制和日志跟踪传递,例如跟踪ID信息。