move gotd fork into repo. (#111)
- 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
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
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)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user