allinssl/backend/internal/report/webhook_test.go

77 lines
1.8 KiB
Go

package report
import (
"ALLinSSL/backend/public"
"context"
"testing"
)
func TestSend(test *testing.T) {
logger, _ := public.NewLogger("/tmp/test.log")
jsonConfig := &ReportConfig{
Url: "http://localhost:9939/demo/any",
Method: "GET",
Headers: `X-Auth-Token: secret123`,
Data: `{"username": "zszs", "password": "get"}`,
}
jsonConfig1 := &ReportConfig{
Url: "http://localhost:9939/demo/any",
Method: "post",
Headers: `
Content-Type: application/json
X-Auth-Token: secret123`,
Data: `{"username": "zszs", "password": "post-json"}`,
}
jsonConfig2 := &ReportConfig{
Url: "http://localhost:9939/demo/any",
Method: "post",
Headers: `
Content-Type: application/x-www-form-urlencoded
X-Auth-Token: secret123`,
Data: `{"username": "zszs", "password": "post-form-urlencoded"}`,
}
jsonConfig3 := &ReportConfig{
Url: "http://localhost:9939/demo/any",
Method: "post",
Headers: `
Content-Type: multipart/form-data
X-Auth-Token: secret123`,
Data: `{"username": "zszs", "password": "post-form-data"}`,
}
reqs := []*ReportConfig{jsonConfig, jsonConfig1, jsonConfig2, jsonConfig3}
for _, req := range reqs {
// 创建报告器
jsonReporter := NewWebHookReporter(req, logger)
// 发送请求
ctx := context.Background()
if err := jsonReporter.Send(ctx); err != nil {
test.Error("JSON Webhook发送失败", "error", err)
continue
}
test.Log("JSON Webhook发送成功", "url", req.Url, "method", req.Method)
}
}
func TestNotifyWebHook(test *testing.T) {
params := map[string]any{
"provider_id": "2",
"body": "测试消息通道",
"subject": "测试消息通道",
}
err := NotifyWebHook(params)
if err != nil {
test.Error("NotifyWebHook failed", "error", err)
} else {
test.Log("NotifyWebHook success")
}
}