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
59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package telegram_notifier
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type passthroughEncryptor struct{}
|
|
|
|
func (p passthroughEncryptor) Encrypt(plaintext string) (string, error) {
|
|
return plaintext, nil
|
|
}
|
|
|
|
func (p passthroughEncryptor) Decrypt(ciphertext string) (string, error) {
|
|
return ciphertext, nil
|
|
}
|
|
|
|
func Test_Validate_WhenProxyEnabledWithoutURL_ReturnsError(t *testing.T) {
|
|
notifier := &TelegramNotifier{
|
|
BotToken: "token",
|
|
TargetChatID: "123456",
|
|
IsProxyEnabled: true,
|
|
}
|
|
|
|
err := notifier.Validate(passthroughEncryptor{})
|
|
|
|
require.Error(t, err)
|
|
assert.Contains(t, err.Error(), "proxy URL is required")
|
|
}
|
|
|
|
func Test_Validate_WhenProxyURLSchemeUnsupported_ReturnsError(t *testing.T) {
|
|
notifier := &TelegramNotifier{
|
|
BotToken: "token",
|
|
TargetChatID: "123456",
|
|
IsProxyEnabled: true,
|
|
ProxyURL: "ftp://proxy.example.com:3128",
|
|
}
|
|
|
|
err := notifier.Validate(passthroughEncryptor{})
|
|
|
|
require.Error(t, err)
|
|
assert.Contains(t, err.Error(), "http/https/socks5/socks5h")
|
|
}
|
|
|
|
func Test_Validate_WhenProxyURLIsSocks5_ReturnsNoError(t *testing.T) {
|
|
notifier := &TelegramNotifier{
|
|
BotToken: "token",
|
|
TargetChatID: "123456",
|
|
IsProxyEnabled: true,
|
|
ProxyURL: "socks5://user:password@proxy.example.com:1080",
|
|
}
|
|
|
|
err := notifier.Validate(passthroughEncryptor{})
|
|
|
|
require.NoError(t, err)
|
|
}
|