Skip to content

Commit 03347c6

Browse files
committed
fix(graphql): use operation FQDN instead of type
1 parent 868583b commit 03347c6

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

src/GraphQl/Resolver/Stage/SerializeStage.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
use ApiPlatform\GraphQl\Serializer\ItemNormalizer;
1818
use ApiPlatform\GraphQl\Serializer\SerializerContextBuilderInterface;
1919
use ApiPlatform\Metadata\CollectionOperationInterface;
20+
use ApiPlatform\Metadata\GraphQl\Mutation;
2021
use ApiPlatform\Metadata\GraphQl\Operation;
22+
use ApiPlatform\Metadata\GraphQl\Subscription;
2123
use ApiPlatform\State\Pagination\Pagination;
2224
use ApiPlatform\State\Pagination\PaginatorInterface;
2325
use ApiPlatform\State\Pagination\PartialPaginatorInterface;
@@ -38,9 +40,9 @@ public function __construct(private readonly NormalizerInterface $normalizer, pr
3840

3941
public function __invoke(iterable|object|null $itemOrCollection, string $resourceClass, Operation $operation, array $context): ?array
4042
{
41-
$isCollection = $context['is_collection'] || $operation instanceof CollectionOperationInterface;
42-
$isMutation = $context['is_mutation'];
43-
$isSubscription = $context['is_subscription'];
43+
$isCollection = $operation instanceof CollectionOperationInterface;
44+
$isMutation = $operation instanceof Mutation;
45+
$isSubscription = $operation instanceof Subscription;
4446
$shortName = $operation->getShortName();
4547
$operationName = $operation->getName();
4648

tests/GraphQl/Resolver/Stage/SerializeStageTest.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,25 +55,25 @@ protected function setUp(): void
5555
/**
5656
* @dataProvider applyDisabledProvider
5757
*/
58-
public function testApplyDisabled(array $context, bool $paginationEnabled, ?array $expectedResult): void
58+
public function testApplyDisabled(Operation $operation, bool $paginationEnabled, ?array $expectedResult): void
5959
{
6060
$resourceClass = 'myResource';
6161
/** @var Operation $operation */
62-
$operation = (new Query())->withSerialize(false);
62+
$operation = $operation->withSerialize(false);
6363

64-
$result = ($this->createSerializeStage($paginationEnabled))(null, $resourceClass, $operation, $context);
64+
$result = ($this->createSerializeStage($paginationEnabled))(null, $resourceClass, $operation, []);
6565

6666
$this->assertSame($expectedResult, $result);
6767
}
6868

6969
public function applyDisabledProvider(): array
7070
{
7171
return [
72-
'item' => [['is_collection' => false, 'is_mutation' => false, 'is_subscription' => false], false, null],
73-
'collection with pagination' => [['is_collection' => true, 'is_mutation' => false, 'is_subscription' => false], true, ['totalCount' => 0., 'edges' => [], 'pageInfo' => ['startCursor' => null, 'endCursor' => null, 'hasNextPage' => false, 'hasPreviousPage' => false]]],
74-
'collection without pagination' => [['is_collection' => true, 'is_mutation' => false, 'is_subscription' => false], false, []],
75-
'mutation' => [['is_collection' => false, 'is_mutation' => true, 'is_subscription' => false], false, ['clientMutationId' => null]],
76-
'subscription' => [['is_collection' => false, 'is_mutation' => false, 'is_subscription' => true], false, ['clientSubscriptionId' => null]],
72+
'item' => [new Query(), false, null],
73+
'collection with pagination' => [new QueryCollection(), true, ['totalCount' => 0., 'edges' => [], 'pageInfo' => ['startCursor' => null, 'endCursor' => null, 'hasNextPage' => false, 'hasPreviousPage' => false]]],
74+
'collection without pagination' => [new QueryCollection(), false, []],
75+
'mutation' => [new Mutation(), false, ['clientMutationId' => null]],
76+
'subscription' => [new Subscription(), false, ['clientSubscriptionId' => null]],
7777
];
7878
}
7979

0 commit comments

Comments
 (0)