mirror of
https://github.com/teamhanko/hanko.git
synced 2025-10-27 14:17:56 +08:00
fix(webhooks): fix HasEvent logic
* fix premature return in the check which skips all following events when the first one was false * add test cases Closes: #1354
This commit is contained in:
@ -34,7 +34,9 @@ type BaseWebhook struct {
|
|||||||
|
|
||||||
func (bh *BaseWebhook) HasEvent(evt events.Event) bool {
|
func (bh *BaseWebhook) HasEvent(evt events.Event) bool {
|
||||||
for _, event := range bh.Events {
|
for _, event := range bh.Events {
|
||||||
return strings.HasPrefix(string(evt), string(event))
|
if strings.HasPrefix(string(evt), string(event)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|||||||
@ -20,6 +20,26 @@ func TestBaseWebhook_HasEvent(t *testing.T) {
|
|||||||
require.True(t, baseHook.HasEvent(events.EmailCreate))
|
require.True(t, baseHook.HasEvent(events.EmailCreate))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestWebhooks_HasEvent_WithMultipleEvents(t *testing.T) {
|
||||||
|
baseHook := BaseWebhook{
|
||||||
|
Logger: nil,
|
||||||
|
Callback: "http://ipsum.lorem",
|
||||||
|
Events: events.Events{events.UserCreate, events.UserUpdate},
|
||||||
|
}
|
||||||
|
|
||||||
|
require.True(t, baseHook.HasEvent(events.UserUpdate))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestWebhooks_HasSubEvent_WithMultipleEvents(t *testing.T) {
|
||||||
|
baseHook := BaseWebhook{
|
||||||
|
Logger: nil,
|
||||||
|
Callback: "http://ipsum.lorem",
|
||||||
|
Events: events.Events{events.UserCreate, events.UserUpdate},
|
||||||
|
}
|
||||||
|
|
||||||
|
require.True(t, baseHook.HasEvent(events.EmailCreate))
|
||||||
|
}
|
||||||
|
|
||||||
func TestBaseWebhook_HasSubEvent(t *testing.T) {
|
func TestBaseWebhook_HasSubEvent(t *testing.T) {
|
||||||
baseHook := BaseWebhook{
|
baseHook := BaseWebhook{
|
||||||
Logger: nil,
|
Logger: nil,
|
||||||
|
|||||||
Reference in New Issue
Block a user