Skip to content

Commit 1b67362

Browse files
committed
fixed issue in JsonSerializeResponseHandler, since serialized content is already json.
1 parent 5094146 commit 1b67362

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
"friendsofphp/php-cs-fixer": "^2.18",
3434
"vimeo/psalm": "^4.6",
3535
"phpunit/phpunit": "^9.5",
36-
"phpspec/prophecy-phpunit": "^2.0"
36+
"phpspec/prophecy-phpunit": "^2.0",
37+
"symfony/property-access": "^5.2"
3738
},
3839
"suggest": {
3940
"symfony/event-dispatcher": "Required when using any of the event handlers.",

src/Response/Handler/JsonSerializeResponseHandler.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ protected function generateResponse(LazyResponseInterface $controllerResult): Re
2929
$this->serializer->serialize($controllerResult->getData(), 'json'),
3030
$controllerResult->getStatusCode(),
3131
$controllerResult->getHeaders(),
32+
true
3233
);
3334
}
3435

tests/Response/Handler/JsonSerializeResponseHandlerTest.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
use Basster\LazyResponseBundle\Response\Handler\JsonSerializeResponseHandler;
88
use Basster\LazyResponseBundle\Response\JsonSerializeResponse;
99
use Prophecy\PhpUnit\ProphecyTrait;
10-
use Prophecy\Prophecy\ObjectProphecy;
10+
use Symfony\Component\Serializer\Encoder\JsonEncoder;
11+
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
12+
use Symfony\Component\Serializer\Serializer;
1113
use Symfony\Component\Serializer\SerializerInterface;
1214

1315
/**
@@ -19,11 +21,11 @@ final class JsonSerializeResponseHandlerTest extends AbstractLazyResponseHandler
1921
{
2022
use ProphecyTrait;
2123

22-
private SerializerInterface | ObjectProphecy $serializer;
24+
private SerializerInterface $serializer;
2325

2426
protected function setUp(): void
2527
{
26-
$this->serializer = $this->prophesize(SerializerInterface::class);
28+
$this->serializer = new Serializer([new ObjectNormalizer()], [new JsonEncoder()]);
2729
parent::setUp();
2830
}
2931

@@ -33,11 +35,16 @@ protected function setUp(): void
3335
public function serializeControllerResultDataWhenSupported(): void
3436
{
3537
$data = new class() {
38+
public string $foo = 'bar';
3639
};
3740
$controllerResult = new JsonSerializeResponse($data);
3841
$event = $this->createViewEvent($controllerResult);
3942
$this->handler->handleLazyResponse($event);
40-
$this->serializer->serialize($data, 'json')->shouldHaveBeenCalled();
43+
44+
self::assertJsonStringEqualsJsonString(
45+
'{"foo":"bar"}',
46+
$event->getResponse()->getContent()
47+
);
4148
}
4249

4350
/**
@@ -75,6 +82,6 @@ protected function getHandlerClassName(): string
7582

7683
protected function createHandlerSubject(): AbstractLazyResponseHandler
7784
{
78-
return new JsonSerializeResponseHandler($this->serializer->reveal());
85+
return new JsonSerializeResponseHandler($this->serializer);
7986
}
8087
}

0 commit comments

Comments
 (0)