mirror of
https://github.com/teamhanko/hanko.git
synced 2025-10-28 06:37:57 +08:00
* 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
56 lines
1.1 KiB
Go
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)
|
|
}
|