tests: implement b.Edit() function test

pull/269/head
Demian 4 years ago
parent 4e2f28c4f3
commit 7fe841183e

@ -261,24 +261,22 @@ func TestBotIncomingUpdate(t *testing.T) {
b.Start() // stops after some delay
}
func TestBotSend(t *testing.T) {
func TestBot(t *testing.T) {
if chatID == 0 {
t.Skip("CHAT_ID is required for Send method test")
}
_, err := b.Send(to, nil)
assert.Equal(t, ErrUnsupportedSendable, err)
assert.Equal(t, ErrUnsupportedWhat, err)
_, err = b.Edit(&Message{Chat: &Chat{}}, nil)
assert.Equal(t, ErrUnsupportedWhat, err)
_, err = b.Send(nil, t.Name())
assert.Error(t, err)
_, err = b.Send(nil, "")
assert.Equal(t, ErrBadRecipient, err)
_, err = b.Forward(nil, nil)
assert.Equal(t, ErrBadRecipient, err)
t.Run("what=string", func(t *testing.T) {
msg, err := b.Send(to, t.Name())
assert.NoError(t, err)
assert.Equal(t, t.Name(), msg.Text)
})
t.Run("what=Sendable", func(t *testing.T) {
t.Run("Send(what=Sendable)", func(t *testing.T) {
photo := &Photo{
File: File{FileID: photoID},
Caption: t.Name(),
@ -289,4 +287,49 @@ func TestBotSend(t *testing.T) {
assert.NotNil(t, msg.Photo)
assert.Equal(t, photo.Caption, msg.Caption)
})
var msg *Message
t.Run("Send(what=string)", func(t *testing.T) {
msg, err = b.Send(to, t.Name())
assert.NoError(t, err)
assert.Equal(t, t.Name(), msg.Text)
rpl, err := b.Reply(msg, t.Name())
assert.NoError(t, err)
assert.Equal(t, rpl.Text, msg.Text)
assert.NotNil(t, rpl.ReplyTo)
assert.Equal(t, rpl.ReplyTo, msg)
assert.True(t, rpl.IsReply())
fwd, err := b.Forward(to, msg)
assert.NoError(t, err)
assert.NotNil(t, msg, fwd)
assert.True(t, fwd.IsForwarded())
fwd.ID += 1 // nonexistent message
fwd, err = b.Forward(to, fwd)
assert.Equal(t, ErrToForwardNotFound, err)
})
t.Run("Edit(what=string)", func(t *testing.T) {
msg, err = b.Edit(msg, t.Name())
assert.NoError(t, err)
assert.Equal(t, t.Name(), msg.Text)
_, err = b.Edit(msg, msg.Text)
assert.Error(t, err) // message is not modified
})
t.Run("Edit(what=Location)", func(t *testing.T) {
loc := &Location{Lat: 42, Lng: 69, LivePeriod: 60}
msg, err := b.Send(to, loc)
assert.NoError(t, err)
assert.NotNil(t, msg.Location)
loc = &Location{Lat: loc.Lng, Lng: loc.Lat}
msg, err = b.Edit(msg, *loc)
assert.NoError(t, err)
assert.NotNil(t, msg.Location)
})
}

Loading…
Cancel
Save