telegram-bot-api/bot_test.go

88 lines
1.6 KiB
Go

package tgbotapi_test
import (
"github.com/syfaro/telegram-bot-api"
"log"
"os"
"testing"
)
func TestMain(m *testing.M) {
botToken := os.Getenv("TELEGRAM_API_TOKEN")
if botToken == "" {
log.Panic("You must provide a TELEGRAM_API_TOKEN env variable to test!")
}
os.Exit(m.Run())
}
func TestNewBotAPI_notoken(t *testing.T) {
_, err := tgbotapi.NewBotAPI("")
if err.Error() != tgbotapi.APIForbidden {
t.Fail()
}
}
func TestNewBotAPI_token(t *testing.T) {
_, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_API_TOKEN"))
if err != nil {
t.Fail()
}
}
func TestGetUpdates(t *testing.T) {
bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_API_TOKEN"))
if err != nil {
t.Fail()
}
u := tgbotapi.NewUpdate(0)
u.Limit = 10000
_, err = bot.GetUpdates(u)
if err != nil {
t.Fail()
}
}
func TestSendMessage(t *testing.T) {
bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_API_TOKEN"))
if err != nil {
t.Fail()
}
msg := tgbotapi.NewMessage(36529758, "A test message from the test library in telegram-bot-api")
bot.SendMessage(msg)
}
func ExampleNewBotAPI() {
bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken")
if err != nil {
log.Panic(err)
}
bot.Debug = true
log.Printf("Authorized on account %s", bot.Self.UserName)
u := tgbotapi.NewUpdate(0)
u.Timeout = 60
err = bot.UpdatesChan(u)
for update := range bot.Updates {
log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.Text)
msg.ReplyToMessageID = update.Message.MessageID
bot.SendMessage(msg)
}
}