diff --git a/src/functions.php b/src/functions.php index c177be4..95f70f7 100644 --- a/src/functions.php +++ b/src/functions.php @@ -87,7 +87,7 @@ function ($error) use (&$exception, &$rejected, &$wait, $loop) { if ($rejected) { if (!$exception instanceof \Exception) { $exception = new \UnexpectedValueException( - 'Promise rejected with unexpected value of type ' . (is_object(($exception) ? get_class($exception) : gettype($exception))), + 'Promise rejected with unexpected value of type ' . (is_object($exception) ? get_class($exception) : gettype($exception)), 0, $exception instanceof \Throwable ? $exception : null ); diff --git a/tests/FunctionAwaitTest.php b/tests/FunctionAwaitTest.php index 73e5eee..e94ea23 100644 --- a/tests/FunctionAwaitTest.php +++ b/tests/FunctionAwaitTest.php @@ -27,6 +27,20 @@ public function testAwaitOneRejectedWithFalseWillWrapInUnexpectedValueException( Block\await($promise, $this->loop); } + /** + * @expectedException UnexpectedValueException + */ + public function testAwaitOneRejectedWithNonFalsyWillWrapInUnexpectedValueException() + { + $all = array( + $this->createPromiseResolved(1), + Promise\reject(new Exception('first')), + Promise\reject(new Exception('second')) + ); + + Block\await(Promise\some($all, count($all)), $this->loop); + } + /** * @expectedException UnexpectedValueException */