Files
mautrix-telegram/pkg/gotd/mtproto/handle_future_salts_test.go
T
2025-06-27 20:03:37 -07:00

53 lines
967 B
Go

package mtproto
import (
"testing"
"time"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/mt"
)
func TestConn_handleFutureSalts(t *testing.T) {
now := time.Now()
ts := int(now.Unix())
testdata := []mt.FutureSalt{
{
ValidSince: ts - 1,
ValidUntil: ts + 1,
Salt: 10,
},
{
ValidSince: ts + 1,
ValidUntil: ts + 3,
Salt: 11,
},
}
t.Run("OK", func(t *testing.T) {
a := require.New(t)
conn := Conn{log: zap.NewNop()}
buf := bin.Buffer{}
a.NoError(buf.Encode(&mt.FutureSalts{
ReqMsgID: 1,
Now: 1,
Salts: testdata,
}))
a.NoError(conn.handleFutureSalts(&buf))
salt, ok := conn.salts.Get(now)
a.Equal(int64(10), salt)
a.True(ok)
})
t.Run("Invalid", func(t *testing.T) {
conn := Conn{}
buf := bin.Buffer{}
buf.PutID(mt.FutureSaltsTypeID)
require.Error(t, conn.handleFutureSalts(&buf))
})
}