feat: publish standalone worker
Separate worker packaging and service lifecycle from the control plane.
Этот коммит содержится в:
53
internal/notify/telegram_test.go
Обычный файл
53
internal/notify/telegram_test.go
Обычный файл
@@ -0,0 +1,53 @@
|
||||
package notify
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||
|
||||
"rsgit.ru/rsmon/rsmon/app/models"
|
||||
)
|
||||
|
||||
func TestTelegram_NilCred(t *testing.T) {
|
||||
if err := Telegram(nil, 123, "x"); err == nil {
|
||||
t.Fatal("expected error for nil cred")
|
||||
}
|
||||
}
|
||||
|
||||
func TestTelegram_WrongKind(t *testing.T) {
|
||||
cred := &models.NotificationCredential{Kind: models.CredentialKindSMTP}
|
||||
if err := Telegram(cred, 123, "x"); err == nil {
|
||||
t.Fatal("expected error for wrong kind")
|
||||
}
|
||||
}
|
||||
|
||||
func TestTelegram_EmptyToken(t *testing.T) {
|
||||
enabled := true
|
||||
cred := &models.NotificationCredential{
|
||||
Kind: models.CredentialKindTelegram,
|
||||
Enabled: &enabled,
|
||||
}
|
||||
if err := Telegram(cred, 123, "x"); err == nil {
|
||||
t.Fatal("expected error for empty token")
|
||||
}
|
||||
}
|
||||
|
||||
func TestTelegramEndpoint_Default(t *testing.T) {
|
||||
if got := telegramEndpoint(""); got != tgbotapi.APIEndpoint {
|
||||
t.Fatalf("expected default endpoint %q, got %q", tgbotapi.APIEndpoint, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTelegramEndpoint_CustomURL(t *testing.T) {
|
||||
cases := []struct{ in, want string }{
|
||||
{"https://api.telegram.org", "https://api.telegram.org/bot%s/%s"},
|
||||
{"https://api.telegram.org/", "https://api.telegram.org/bot%s/%s"},
|
||||
{"https://user:pass@deploy.rscz.ru/", "https://user:pass@deploy.rscz.ru/bot%s/%s"},
|
||||
{"https://deploy.rscz.ru", "https://deploy.rscz.ru/bot%s/%s"},
|
||||
}
|
||||
for _, tc := range cases {
|
||||
if got := telegramEndpoint(tc.in); got != tc.want {
|
||||
t.Errorf("telegramEndpoint(%q) = %q; want %q", tc.in, got, tc.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
Ссылка в новой задаче
Block a user