Files
hanko/backend/webhooks/utils/webhook_test.go
Stefan Jacobi c9994bdc3a fix(review): fix review findings
* admin api: make email primary when user has no emails
* utils: move get updated user and webhook trigger to utils to reduce duplicated code
* events: remove unused user and email event - Check is replaced with string variant
* remove unused dtos
* fix tests after changes
* webhook tests: switch to test.Suite instead of TestPersister -> added deprecation annotation to test.NewPersister
* Email Verification: Fix trigger of webhook when email verification is enabled and a email is created but not validated

Closes: #692, #1051
2024-01-25 13:20:56 +01:00

56 lines
1.1 KiB
Go

package utils
import (
"github.com/labstack/echo/v4"
"github.com/stretchr/testify/require"
"github.com/teamhanko/hanko/backend/webhooks/events"
"net/http"
"net/http/httptest"
"testing"
)
type testManager struct {
TestFunc func()
}
func (tm *testManager) Trigger(evt events.Event, data interface{}) {
tm.TestFunc()
}
func (tm *testManager) GenerateJWT(data interface{}, event events.Event) (string, error) {
return "", nil
}
func TestWebhook_TriggerWithoutManager(t *testing.T) {
e := echo.New()
req := httptest.NewRequest(http.MethodGet, "/path", nil)
rec := httptest.NewRecorder()
ctx := e.NewContext(req, rec)
err := TriggerWebhooks(ctx, "user", "lorem")
require.Error(t, err)
err = e.Close()
require.NoError(t, err)
}
func TestWebhook_Trigger(t *testing.T) {
e := echo.New()
req := httptest.NewRequest(http.MethodGet, "/path", nil)
rec := httptest.NewRecorder()
tm := &testManager{TestFunc: func() {
require.True(t, true)
}}
ctx := e.NewContext(req, rec)
ctx.Set("webhook_manager", tm)
err := TriggerWebhooks(ctx, "user", "lorem")
require.NoError(t, err)
err = e.Close()
require.NoError(t, err)
}