Skip to content

Commit 84cfd83

Browse files
authored
The middleware does not overwrite given Accept (#1)
1 parent 20b9b26 commit 84cfd83

File tree

4 files changed

+34
-6
lines changed

4 files changed

+34
-6
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/vendor/
22
composer.lock
3-
.php_cs.cache
3+
.php_cs.cache
4+
.phpunit.result.cache

.phpunit.result.cache

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/Middleware/RequestAcceptJson.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ class RequestAcceptJson
99
{
1010
public function handle(Request $request, Closure $next)
1111
{
12-
$request->headers->set('Accept', 'application/json');
12+
if (!$request->headers->has('Accept')) {
13+
$request->headers->set('Accept', 'application/json');
14+
}
1315

1416
return $next($request);
1517
}

tests/Middleware/RequestAcceptJsonTest.php

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88

99
class RequestAcceptJsonTest extends TestCase
1010
{
11-
public function testHandle()
11+
/**
12+
* @test
13+
*/
14+
public function whenItDoesNotReceiveAnAcceptHeaderItShouldSetToApplicationJson()
1215
{
1316
$mockRequest = $this->getRequest();
1417
$middleware = new RequestAcceptJson();
@@ -22,8 +25,31 @@ function ($request) {
2225
$this->assertSame('application/json', $result->header('Accept'));
2326
}
2427

25-
private function getRequest()
28+
/**
29+
* @test
30+
*/
31+
public function whenReceiveAnAcceptHeaderItShouldNotModifyIt()
2632
{
27-
return new Request([], [], [], [], [], [], '');
33+
$mockRequest = $this->getRequest(['Accept' => 'text/csv']);
34+
$middleware = new RequestAcceptJson();
35+
36+
$result = $middleware->handle(
37+
$mockRequest,
38+
function ($request) {
39+
return $request;
40+
}
41+
);
42+
$this->assertSame('text/csv', $result->header('Accept'));
43+
}
44+
45+
private function getRequest($headers = [])
46+
{
47+
$request = new Request([], [], [], [], [], [], '');
48+
49+
foreach ($headers as $name => $value) {
50+
$request->headers->set($name, $value);
51+
}
52+
53+
return $request;
2854
}
2955
}

0 commit comments

Comments
 (0)