7a04f298d2
- update to latest telegram layer - remove some references to fields in tg.Entities that don't exist in the schema - originally added here: https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e - referenced here - https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3 - https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package message
|
|
|
|
import (
|
|
"context"
|
|
"crypto/rand"
|
|
"strconv"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/crypto"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tgmock"
|
|
)
|
|
|
|
func expectSendReport(t *testing.T, option []byte, mock *tgmock.Mock, id int, msg string) {
|
|
mock.ExpectFunc(func(b bin.Encoder) {
|
|
req, ok := b.(*tg.MessagesReportRequest)
|
|
require.True(t, ok)
|
|
require.Equal(t, &tg.InputPeerSelf{}, req.Peer)
|
|
require.Equal(t, option, req.Option)
|
|
require.NotZero(t, req.ID)
|
|
require.Equal(t, id, req.ID[0])
|
|
require.Equal(t, msg, req.Message)
|
|
}).ThenResult(&tg.ReportResultReported{})
|
|
}
|
|
|
|
func TestRequestBuilder_Report(t *testing.T) {
|
|
ctx := context.Background()
|
|
sender, mock := testSender(t)
|
|
|
|
id64, err := crypto.RandInt64(rand.Reader)
|
|
require.NoError(t, err)
|
|
id := int(id64)
|
|
msg := "abc" + strconv.Itoa(id)
|
|
|
|
report := sender.Self().Report(id).Message(msg)
|
|
|
|
option := []byte{1, 2, 3}
|
|
expectSendReport(t, option, mock, id, msg)
|
|
r, err := report.Option(ctx, option)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, r)
|
|
}
|
|
|
|
func TestRequestBuilder_ReportSpam(t *testing.T) {
|
|
ctx := context.Background()
|
|
sender, mock := testSender(t)
|
|
|
|
mock.ExpectCall(&tg.MessagesReportSpamRequest{
|
|
Peer: &tg.InputPeerSelf{},
|
|
}).ThenTrue()
|
|
|
|
r, err := sender.Self().ReportSpam(ctx)
|
|
require.True(t, r)
|
|
require.NoError(t, err)
|
|
}
|