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()) }