Skip to content

Commit cbf14eb

Browse files
andigclue
authored andcommitted
Handle errors during buffering
1 parent cdf9deb commit cbf14eb

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/Middleware/RequestBodyBufferMiddleware.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public function __invoke(ServerRequestInterface $request, $stack)
5353
return new Response(413, array('Content-Type' => 'text/plain'), 'Request body exceeds allowed limit');
5454
}
5555

56-
return $error;
56+
throw $error;
5757
});
5858
}
5959

tests/Middleware/RequestBodyBufferMiddlewareTest.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,32 @@ function($response) use (&$exposedResponse) {
123123

124124
Block\await($promise, $loop);
125125
}
126+
127+
/**
128+
* @expectedException RuntimeException
129+
*/
130+
public function testBufferingErrorThrows()
131+
{
132+
$loop = Factory::create();
133+
134+
$stream = new ThroughStream();
135+
$serverRequest = new ServerRequest(
136+
'GET',
137+
'https://example.com/',
138+
array(),
139+
new HttpBodyStream($stream, null)
140+
);
141+
142+
$buffer = new RequestBodyBufferMiddleware(1);
143+
$promise = $buffer(
144+
$serverRequest,
145+
function (ServerRequestInterface $request) {
146+
return $request;
147+
}
148+
);
149+
150+
$stream->emit('error', array(new \RuntimeException()));
151+
152+
Block\await($promise, $loop);
153+
}
126154
}

0 commit comments

Comments
 (0)