65 lines · 2.1 KB · Go
RawDownload
// Copyright 2025 The Forgejo Authors. All rights reserved.// SPDX-License-Identifier: GPL-3.0-or-later package webhook import (	"testing" 	"forgejo.org/models/db"	"forgejo.org/models/unittest" 	"github.com/stretchr/testify/require"	"xorm.io/builder") func TestListSystemWebhooks(t *testing.T) {	defer unittest.OverrideFixtures("models/webhook/fixtures/TestListSystemWebhooks")()	require.NoError(t, unittest.PrepareTestDatabase())	testGetAdminWebhooks(t, true)} func TestListDefaultWebhooks(t *testing.T) {	defer unittest.OverrideFixtures("models/webhook/fixtures/TestListDefaultWebhooks")()	require.NoError(t, unittest.PrepareTestDatabase())	testGetAdminWebhooks(t, false)} func testGetAdminWebhooks(t *testing.T, systemHooks bool) {	hookCond := builder.Eq{"is_system_webhook": systemHooks}.And(builder.Eq{"repo_id": 0})	unittest.AssertCountByCond(t, "webhook", hookCond, 5) 	t.Run("All hooks (Implicit)", func(t *testing.T) {		hooks, count, err := getAdminWebhooks(t.Context(), systemHooks, db.ListOptionsAll)		require.NoError(t, err)		unittest.AssertCountByCond(t, "webhook", hookCond, int(count))		require.Len(t, hooks, int(count))		require.Equal(t, 5, int(count))		for i := range hooks {			require.Equal(t, systemHooks, hooks[i].IsSystemWebhook)		}	}) 	t.Run("All hooks (Explicit)", func(t *testing.T) {		hooks, count, err := getAdminWebhooks(t.Context(), systemHooks, db.ListOptionsAll, false)		require.NoError(t, err)		unittest.AssertCountByCond(t, "webhook", hookCond, int(count))		require.Len(t, hooks, int(count))		require.Equal(t, 5, int(count))		for i := range hooks {			require.Equal(t, systemHooks, hooks[i].IsSystemWebhook)		}	}) 	t.Run("Active hooks", func(t *testing.T) {		hooks, count, err := getAdminWebhooks(t.Context(), systemHooks, db.ListOptionsAll, true)		require.NoError(t, err)		unittest.AssertCountByCond(t, "webhook", hookCond.And(builder.Eq{"is_active": true}), int(count))		require.Len(t, hooks, int(count))		require.Equal(t, 3, int(count))		for i := range hooks {			require.Equal(t, systemHooks, hooks[i].IsSystemWebhook)			require.True(t, hooks[i].IsActive)		}	})}