package message
import (
"context"
"testing"
"github.com/stretchr/testify/require"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/message/entity"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/message/html"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
)
func TestHTMLBuilder_String(t *testing.T) {
ctx := context.Background()
sender, mock := testSender(t)
msg := "abc"
send := "" + msg + ""
mock.ExpectFunc(func(b bin.Encoder) {
req, ok := b.(*tg.MessagesSendMessageRequest)
require.True(t, ok)
require.Equal(t, &tg.InputPeerSelf{}, req.Peer)
require.Equal(t, msg, req.Message)
require.NotZero(t, req.Entities)
require.Equal(t, &tg.MessageEntityBold{
Offset: 0,
Length: entity.ComputeLength(msg),
}, req.Entities[0])
}).ThenResult(&tg.Updates{})
_, err := sender.Self().StyledText(ctx, html.Format(nil, "%s", msg))
require.NoError(t, err)
mock.ExpectFunc(func(b bin.Encoder) {
req, ok := b.(*tg.MessagesSendMessageRequest)
require.True(t, ok)
require.Equal(t, &tg.InputPeerSelf{}, req.Peer)
require.Equal(t, msg, req.Message)
require.NotZero(t, req.Entities)
require.Equal(t, &tg.MessageEntityBold{
Offset: 0,
Length: entity.ComputeLength(msg),
}, req.Entities[0])
}).ThenRPCErr(testRPCError())
_, err = sender.Self().StyledText(ctx, html.Bytes(nil, []byte(send)))
require.Error(t, err)
}