code: func ShouldEventuallyReceive(t testing.TB, c interface{}, timeouts ...time.Duration) interface{} {
  	t.Helper()
  	if !isChan(c) {
  		t.Fatal("ShouldEventuallyReceive c argument should be a channel")
  	}
  	v := reflect.ValueOf(c)
  
  	timeout := time.After(500 * time.Millisecond)
  
  	if len(timeouts) > 0 {
  		timeout = time.After(timeouts[0])
  	}
  
  	recvChan := make(chan reflect.Value)
  
  	go func() {
  		v, ok := v.Recv()
  		if ok {
  			recvChan <- v
  		}
  	}()
  
  	select {
  	case <-timeout:
  		t.Fatal(errors.New("timed out waiting for channel to receive"))
  	case a := <-recvChan:
  		return a.Interface()
  	}
  
  	return nil
  }
docs: // ShouldEventuallyReceive should asserts that eventually channel c receives a value