tests: properly handle errors and empty token

pull/271/head
Demian 4 years ago
parent 81f4447261
commit add99b58a7

@ -26,6 +26,7 @@ func testRawServer(w http.ResponseWriter, r *http.Request) {
case strings.HasSuffix(r.URL.Path, "/testReadError"):
// tells the body is 1 byte length but actually it's 0
w.Header().Set("Content-Length", "1")
// returns unknown telegram error
case strings.HasSuffix(r.URL.Path, "/testUnknownError"):
data, _ := json.Marshal(struct {
@ -44,6 +45,10 @@ func testRawServer(w http.ResponseWriter, r *http.Request) {
}
func TestRaw(t *testing.T) {
if token == "" {
t.Skip("TELEBOT_SECRET is required")
}
b, err := newTestBot()
if err != nil {
t.Fatal(err)

@ -17,6 +17,7 @@ const (
var (
// required to test send and edit methods
token = os.Getenv("TELEBOT_SECRET")
chatID, _ = strconv.ParseInt(os.Getenv("CHAT_ID"), 10, 64)
userID, _ = strconv.Atoi(os.Getenv("USER_ID"))
@ -26,7 +27,7 @@ var (
)
func defaultSettings() Settings {
return Settings{Token: os.Getenv("TELEBOT_SECRET")}
return Settings{Token: token}
}
func newTestBot() (*Bot, error) {
@ -46,8 +47,15 @@ func TestNewBot(t *testing.T) {
_, err = NewBot(pref)
assert.Error(t, err)
if token == "" {
t.Skip("TELEBOT_SECRET is required")
}
b, err := newTestBot()
assert.NoError(t, err)
if err != nil {
t.Fatal(err)
}
assert.NotNil(t, b.Me)
assert.Equal(t, DefaultApiURL, b.URL)
assert.Equal(t, http.DefaultClient, b.client)
@ -69,6 +77,10 @@ func TestNewBot(t *testing.T) {
}
func TestBotHandle(t *testing.T) {
if b == nil {
t.Skip("Cached bot instance is bad (probably wrong or empty TELEBOT_SECRET)")
}
b.Handle("/start", func(m *Message) {})
assert.Contains(t, b.handlers, "/start")
@ -80,6 +92,10 @@ func TestBotHandle(t *testing.T) {
}
func TestBotStart(t *testing.T) {
if token == "" {
t.Skip("TELEBOT_SECRET is required")
}
// cached bot has no poller
assert.Panics(t, func() { b.Start() })
@ -87,7 +103,9 @@ func TestBotStart(t *testing.T) {
pref.Poller = &LongPoller{}
b, err := NewBot(pref)
assert.NoError(t, err)
if err != nil {
t.Fatal(err)
}
// remove webhook to be sure that bot can poll
assert.NoError(t, b.RemoveWebhook())
@ -117,6 +135,10 @@ func TestBotStart(t *testing.T) {
}
func TestBotIncomingUpdate(t *testing.T) {
if token == "" {
t.Skip("TELEBOT_SECRET is required")
}
b, err := newTestBot()
if err != nil {
t.Fatal(err)
@ -265,6 +287,9 @@ func TestBotIncomingUpdate(t *testing.T) {
}
func TestBot(t *testing.T) {
if b == nil {
t.Skip("Cached bot instance is bad (probably wrong or empty TELEBOT_SECRET)")
}
if chatID == 0 {
t.Skip("CHAT_ID is required for Bot methods test")
}

@ -18,6 +18,9 @@ func TestPoll(t *testing.T) {
}
func TestPollSend(t *testing.T) {
if token == "" {
t.Skip("TELEBOT_SECRET is required")
}
if userID == 0 {
t.Skip("USER_ID is required for Poll methods test")
}

Loading…
Cancel
Save