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

40 lines
685 B
Go

package pool
import (
"context"
"testing"
"time"
"github.com/stretchr/testify/require"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdsync"
)
func TestReqMap(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
g := tdsync.NewCancellableGroup(ctx)
req := newReqMap()
key, ch := req.request()
g.Go(func(ctx context.Context) error {
defer req.delete(key)
select {
case <-ch:
return nil
case <-ctx.Done():
return ctx.Err()
}
})
g.Go(func(ctx context.Context) error {
require.True(t, req.transfer(&poolConn{}))
require.False(t, req.transfer(&poolConn{}))
return nil
})
require.NoError(t, g.Wait())
}