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

47 lines
1.0 KiB
Go

package telegram
import (
"context"
"testing"
"time"
"github.com/cenkalti/backoff/v4"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/exchange"
)
type fingerprintNotFoundConn struct{}
func (m fingerprintNotFoundConn) Run(context.Context) error {
return exchange.ErrKeyFingerprintNotFound
}
func (m fingerprintNotFoundConn) Invoke(context.Context, bin.Encoder, bin.Decoder) error {
return nil
}
func (m fingerprintNotFoundConn) Ping(context.Context) error {
return nil
}
func (m fingerprintNotFoundConn) Ready() <-chan struct{} {
return nil
}
func TestClient_reconnectUntilClosed(t *testing.T) {
client := Client{
newConnBackoff: func() backoff.BackOff {
return backoff.NewConstantBackOff(time.Nanosecond)
},
log: zap.NewNop(),
}
client.init()
client.conn = fingerprintNotFoundConn{}
ctx := context.Background()
require.ErrorIs(t, client.reconnectUntilClosed(ctx), exchange.ErrKeyFingerprintNotFound)
}