diff --git a/composer.json b/composer.json index e971e32..a1ca502 100644 --- a/composer.json +++ b/composer.json @@ -10,6 +10,7 @@ "react/dns": "0.4.*", "react/event-loop": "0.4.*", "react/stream": "0.4.*", + "react/promise": "~2.2", "evenement/evenement": "~2.0" }, "autoload": { diff --git a/src/Request.php b/src/Request.php index 67ae3a1..dfbd064 100644 --- a/src/Request.php +++ b/src/Request.php @@ -57,7 +57,7 @@ public function writeHead() $this ->connect() - ->then( + ->done( function ($stream) use ($requestData, &$streamRef, &$stateRef) { $streamRef = $stream; diff --git a/tests/RequestTest.php b/tests/RequestTest.php index eb17727..9c17137 100644 --- a/tests/RequestTest.php +++ b/tests/RequestTest.php @@ -217,6 +217,25 @@ public function requestShouldEmitErrorIfConnectionEmitsError() $request->handleError(new \Exception('test')); } + /** + * @test + * @expectedException Exception + * @expectedExceptionMessage something failed + */ + public function requestDoesNotHideErrors() + { + $requestData = new RequestData('GET', 'http://www.example.com'); + $request = new Request($this->connector, $requestData); + + $this->rejectedConnectionMock(); + + $request->on('error', function () { + throw new \Exception('something failed'); + }); + + $request->end(); + } + /** @test */ public function postRequestShouldSendAPostRequest() {