50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package notify
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
|
|
|
"overnight-trading-bot/internal/domain"
|
|
)
|
|
|
|
func TestPrefix(t *testing.T) {
|
|
tests := map[domain.Severity]string{
|
|
domain.SeverityInfo: "[INFO]",
|
|
domain.SeverityWarn: "[WARN]",
|
|
domain.SeverityAlert: "[ALERT]",
|
|
domain.Severity("alert"): "[ALERT]",
|
|
}
|
|
for severity, want := range tests {
|
|
if got := prefix(severity); got != want {
|
|
t.Fatalf("prefix(%s)=%s, want %s", severity, got, want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFormatReportPrefix(t *testing.T) {
|
|
if got := formatMessage("[REPORT]", "daily"); got != "[REPORT] daily" {
|
|
t.Fatalf("message=%s", got)
|
|
}
|
|
}
|
|
|
|
func TestTelegramRetryDelayUsesRetryAfter(t *testing.T) {
|
|
err := &tgbotapi.Error{
|
|
Code: 429,
|
|
ResponseParameters: tgbotapi.ResponseParameters{
|
|
RetryAfter: 7,
|
|
},
|
|
}
|
|
if got := telegramRetryDelay(err, 0); got != 7*time.Second {
|
|
t.Fatalf("delay=%s, want 7s", got)
|
|
}
|
|
if got := telegramRetryDelay(assertErr{}, 1); got != 2*time.Second {
|
|
t.Fatalf("fallback delay=%s, want 2s", got)
|
|
}
|
|
}
|
|
|
|
type assertErr struct{}
|
|
|
|
func (assertErr) Error() string { return "boom" }
|