package client import ( "context" "testing" ) type testHook struct { f bool } func (t *testHook) Publish(fn FuncPublish) FuncPublish { return func(ctx context.Context, msg Message, opts ...PublishOption) error { t.f = true return fn(ctx, msg, opts...) } } func TestNoopHook(t *testing.T) { h := &testHook{} c := NewClient(Hooks(HookPublish(h.Publish))) if err := c.Init(); err != nil { t.Fatal(err) } if err := c.Publish(context.TODO(), c.NewMessage("", nil, MessageContentType("application/octet-stream"))); err != nil { t.Fatal(err) } if !h.f { t.Fatal("hook not works") } }