Files
mautrix-telegram/pkg/gotd/telegram/message/inline/inline_test.go
T
2025-06-27 20:03:37 -07:00

67 lines
1.6 KiB
Go

package inline
import (
"context"
"crypto/rand"
"testing"
"time"
"github.com/stretchr/testify/require"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgmock"
)
func testBuilder(t *testing.T) (*ResultBuilder, *tgmock.Mock) {
mock := tgmock.New(t)
sender := New(tg.NewClient(mock), rand.Reader, 10)
return sender, mock
}
func testRPCError() *tgerr.Error {
return &tgerr.Error{
Code: 1337,
Message: "TEST_ERROR",
Type: "TEST_ERROR",
}
}
func TestResultBuilder_Set(t *testing.T) {
ctx := context.Background()
builder, mock := testBuilder(t)
mock.ExpectFunc(func(b bin.Encoder) {
v, ok := b.(*tg.MessagesSetInlineBotResultsRequest)
require.True(t, ok)
require.True(t, v.Gallery)
}).ThenTrue()
_, err := builder.Gallery(true).Set(ctx)
require.NoError(t, err)
mock.ExpectFunc(func(b bin.Encoder) {
v, ok := b.(*tg.MessagesSetInlineBotResultsRequest)
require.True(t, ok)
require.True(t, v.Private)
}).ThenTrue()
_, err = builder.Private(true).Set(ctx)
require.NoError(t, err)
mock.ExpectFunc(func(b bin.Encoder) {
v, ok := b.(*tg.MessagesSetInlineBotResultsRequest)
require.True(t, ok)
require.Equal(t, 1, v.CacheTime)
}).ThenTrue()
_, err = builder.CacheTime(time.Second).Set(ctx)
require.NoError(t, err)
mock.ExpectFunc(func(b bin.Encoder) {
v, ok := b.(*tg.MessagesSetInlineBotResultsRequest)
require.True(t, ok)
require.Equal(t, "offset", v.NextOffset)
}).ThenTrue()
_, err = builder.NextOffset("offset").Set(ctx)
require.NoError(t, err)
}