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 {
|
||||
for _, event := range bh.Events {
|
||||
return strings.HasPrefix(string(evt), string(event))
|
||||
if strings.HasPrefix(string(evt), string(event)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
|
||||
@ -20,6 +20,26 @@ func TestBaseWebhook_HasEvent(t *testing.T) {
|
||||
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) {
|
||||
baseHook := BaseWebhook{
|
||||
Logger: nil,
|
||||
|
||||
Reference in New Issue
Block a user