Files
wehub-resource-sync 75f3dd141c
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CI and Release / lint-frontend (push) Has been cancelled
CI and Release / dockerfile-scan (push) Has been cancelled
CI and Release / test-frontend (push) Has been cancelled
CI and Release / lint-verification-agent (push) Has been cancelled
CI and Release / test-verification-agent (push) Has been cancelled
CI and Release / e2e-verification-agent (push) Has been cancelled
CI and Release / test-backend (push) Has been cancelled
CI and Release / build-dev-image (push) Has been cancelled
CI and Release / push-dev-image (push) Has been cancelled
CI and Release / build-image (push) Has been cancelled
CI and Release / build-verification-image (push) Has been cancelled
CI and Release / determine-version (push) Has been cancelled
CI and Release / push-image (push) Has been cancelled
CI and Release / push-verification-image (12) (push) Has been cancelled
CI and Release / lint-backend (push) Has been cancelled
CI and Release / push-verification-image (17) (push) Has been cancelled
CI and Release / push-verification-image (18) (push) Has been cancelled
CI and Release / release (push) Has been cancelled
CI and Release / publish-helm-chart (push) Has been cancelled
CI and Release / push-verification-image (13) (push) Has been cancelled
CI and Release / push-verification-image (14) (push) Has been cancelled
CI and Release / push-verification-image (15) (push) Has been cancelled
CI and Release / push-verification-image (16) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:11:07 +08:00

73 lines
1.4 KiB
Go

package notifiers
import (
"net/http"
"net/http/httptest"
"sync"
"sync/atomic"
"github.com/google/uuid"
webhook_notifier "databasus-backend/internal/features/notifiers/models/webhook"
)
type WebhookStub struct {
server *httptest.Server
callCount atomic.Int64
}
func startWebhookStub() *WebhookStub {
stub := &WebhookStub{}
stub.server = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
stub.callCount.Add(1)
w.WriteHeader(http.StatusOK)
}))
return stub
}
var sharedWebhookStub = sync.OnceValue(startWebhookStub)
func GetWebhookStub() *WebhookStub {
return sharedWebhookStub()
}
func (s *WebhookStub) URL() string {
return s.server.URL
}
func (s *WebhookStub) CallCount() int {
return int(s.callCount.Load())
}
func (s *WebhookStub) ResetCalls() {
s.callCount.Store(0)
}
func CreateTestNotifier(workspaceID uuid.UUID) *Notifier {
notifier := &Notifier{
WorkspaceID: workspaceID,
Name: "test " + uuid.New().String(),
NotifierType: NotifierTypeWebhook,
WebhookNotifier: &webhook_notifier.WebhookNotifier{
WebhookURL: GetWebhookStub().URL() + "/test-" + uuid.New().String(),
WebhookMethod: webhook_notifier.WebhookMethodPOST,
},
}
notifier, err := notifierRepository.Save(notifier)
if err != nil {
panic(err)
}
return notifier
}
func RemoveTestNotifier(notifier *Notifier) {
err := notifierRepository.Delete(notifier)
if err != nil {
panic(err)
}
}