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
99 lines
2.2 KiB
Go
99 lines
2.2 KiB
Go
package entity
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
|
|
)
|
|
|
|
func TestEnsureTrim(t *testing.T) {
|
|
a := require.New(t)
|
|
|
|
prefix := "pre"
|
|
expected := "abc\nabc"
|
|
b := Builder{}
|
|
b.Plain(prefix)
|
|
b.Format(expected+"\n\n\n", Bold(), Italic())
|
|
|
|
msg, ent := b.Complete()
|
|
a.Equal(prefix+expected, msg)
|
|
a.Equal([]tg.MessageEntityClass{
|
|
&tg.MessageEntityBold{
|
|
Offset: len(prefix),
|
|
Length: ComputeLength(expected),
|
|
},
|
|
&tg.MessageEntityItalic{
|
|
Offset: len(prefix),
|
|
Length: ComputeLength(expected),
|
|
},
|
|
}, ent)
|
|
}
|
|
|
|
func TestComplete(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
format func(e *Builder)
|
|
msg string
|
|
entities []tg.MessageEntityClass
|
|
}{
|
|
{"PlainBold", func(e *Builder) {
|
|
e.Plain("plain").Bold("bold")
|
|
}, "plainbold", []tg.MessageEntityClass{
|
|
&tg.MessageEntityBold{
|
|
Offset: ComputeLength("plain"),
|
|
Length: ComputeLength("bold"),
|
|
},
|
|
}},
|
|
{"PlainBoldAndStrike", func(e *Builder) {
|
|
e.Plain("plain").Format("10\n\n\n\n", Bold(), Strike())
|
|
}, "plain10", []tg.MessageEntityClass{
|
|
&tg.MessageEntityBold{
|
|
Offset: ComputeLength("plain"),
|
|
Length: ComputeLength("10"),
|
|
},
|
|
&tg.MessageEntityStrike{
|
|
Offset: ComputeLength("plain"),
|
|
Length: ComputeLength("10"),
|
|
},
|
|
}},
|
|
{"BoldPlainBold", func(e *Builder) {
|
|
e.Bold("bold").Plain("plain").Bold("bold2\n\n\n\n")
|
|
}, "boldplainbold2", []tg.MessageEntityClass{
|
|
&tg.MessageEntityBold{
|
|
Offset: ComputeLength("boldplain"),
|
|
Length: ComputeLength("bold2"),
|
|
},
|
|
&tg.MessageEntityBold{
|
|
Offset: 0,
|
|
Length: ComputeLength("bold"),
|
|
},
|
|
}},
|
|
{"BoldBold", func(e *Builder) {
|
|
e.Bold("bold\n\n\n\n").Bold("bold2\n\n\n\n")
|
|
}, "bold\n\n\n\nbold2", []tg.MessageEntityClass{
|
|
&tg.MessageEntityBold{
|
|
Offset: 0,
|
|
Length: ComputeLength("bold\n\n\n\n"),
|
|
},
|
|
&tg.MessageEntityBold{
|
|
Offset: ComputeLength("bold\n\n\n\n"),
|
|
Length: ComputeLength("bold2"),
|
|
},
|
|
}},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
t.Run(test.name, func(t *testing.T) {
|
|
a := require.New(t)
|
|
b := Builder{}
|
|
test.format(&b)
|
|
|
|
msg, entities := b.Complete()
|
|
a.Equal(test.msg, msg)
|
|
a.Equal(test.entities, entities)
|
|
})
|
|
}
|
|
}
|