mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 15:09:42 +00:00
* GHA, tests: Add additional checks for common issues These checks include: - Ensuring that all testify funcs use their formatted variants (e.g., `assert.Equalf(t, expected, actual)` instead of `assert.Equal(t, expected, actual)`). - Replacing `%s` with %q - Enforcing consistent usage of should/must wording for testify assert/require messages * Add support for checking backticked string format specifiers and fix issues * tests: Fix error comparisons * tests: Replace errors.Is(err, nil) usage with testify and automate check * refactor: Rename ExtractPort to ExtractPortOrDefault * tests: Replace assert with require for error handling in multiple test files * tests: Replace assert with require for error handling and improve assertions in data tests * tests: Fix typo in assertion message for StreamVol test * OKX: Fix GetOpenInterestAndVolumeStrike test with instrument selection and improved assertions * OKX: Revert intentional error check * Improve error message for expiry time check in GetOpenInterestAndVolumeStrike test
102 lines
2.4 KiB
Go
102 lines
2.4 KiB
Go
package telegram
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/thrasher-corp/gocryptotrader/communications/base"
|
|
"github.com/thrasher-corp/gocryptotrader/config"
|
|
)
|
|
|
|
const (
|
|
testErrNotFound = "Not Found"
|
|
)
|
|
|
|
func TestSetup(t *testing.T) {
|
|
t.Parallel()
|
|
cfg := &config.Config{Communications: base.CommunicationsConfig{
|
|
TelegramConfig: base.TelegramConfig{
|
|
Name: "Telegram",
|
|
Enabled: false,
|
|
Verbose: false,
|
|
VerificationToken: "testest",
|
|
AuthorisedClients: map[string]int64{"sender": 0},
|
|
},
|
|
}}
|
|
commsCfg := cfg.GetCommunicationsConfig()
|
|
var T Telegram
|
|
T.Setup(&commsCfg)
|
|
if T.Name != "Telegram" || T.Enabled || T.Token != "testest" || T.Verbose || len(T.AuthorisedClients) != 1 {
|
|
t.Error("telegram Setup() error, unexpected setup values",
|
|
T.Name,
|
|
T.Enabled,
|
|
T.Token,
|
|
T.Verbose)
|
|
}
|
|
}
|
|
|
|
func TestConnect(t *testing.T) {
|
|
t.Parallel()
|
|
var T Telegram
|
|
if err := T.Connect(); err == nil {
|
|
t.Error("expected error")
|
|
}
|
|
}
|
|
|
|
func TestPushEvent(t *testing.T) {
|
|
t.Parallel()
|
|
var T Telegram
|
|
err := T.PushEvent(base.Event{})
|
|
assert.ErrorIs(t, err, ErrNotConnected)
|
|
|
|
T.Connected = true
|
|
T.AuthorisedClients = map[string]int64{"sender": 0}
|
|
err = T.PushEvent(base.Event{})
|
|
assert.NoError(t, err, "PushEvent should not error")
|
|
|
|
T.AuthorisedClients = map[string]int64{"sender": 1337}
|
|
err = T.PushEvent(base.Event{})
|
|
assert.ErrorContains(t, err, testErrNotFound)
|
|
}
|
|
|
|
func TestHandleMessages(t *testing.T) {
|
|
t.Parallel()
|
|
var T Telegram
|
|
for _, c := range []string{cmdHelp, cmdStart, cmdStatus, "Not a command"} {
|
|
assert.ErrorContainsf(t, T.HandleMessages(c, 1337), testErrNotFound,
|
|
"HandleMessages with command %q should error correctly", c)
|
|
}
|
|
}
|
|
|
|
func TestGetUpdates(t *testing.T) {
|
|
t.Parallel()
|
|
var T Telegram
|
|
if _, err := T.GetUpdates(); err != nil {
|
|
t.Error("telegram GetUpdates() error", err)
|
|
}
|
|
}
|
|
|
|
func TestTestConnection(t *testing.T) {
|
|
t.Parallel()
|
|
var T Telegram
|
|
if err := T.TestConnection(); err.Error() != testErrNotFound {
|
|
t.Errorf("received %s, expected: %s", err, testErrNotFound)
|
|
}
|
|
}
|
|
|
|
func TestSendMessage(t *testing.T) {
|
|
t.Parallel()
|
|
var T Telegram
|
|
err := T.SendMessage("Test message", 1337)
|
|
assert.ErrorContains(t, err, testErrNotFound, "SendMessage should error correctly")
|
|
}
|
|
|
|
func TestSendHTTPRequest(t *testing.T) {
|
|
t.Parallel()
|
|
var T Telegram
|
|
err := T.SendHTTPRequest("0.0.0.0", nil, nil)
|
|
if err == nil {
|
|
t.Error("telegram SendHTTPRequest() error")
|
|
}
|
|
}
|