Skip to content

Commit 23d3579

Browse files
committed
feat(graphql): fixing mercure subscription failing tests
1 parent e764f2f commit 23d3579

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/GraphQl/Subscription/SubscriptionManager.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public function retrieveSubscriptionId(array $context, ?array $result, ?Operatio
5151
return null;
5252
}
5353

54-
$options = $operation->getMercure() ?? false;
54+
$options = $operation ? ($operation->getMercure() ?? false) : false;
5555
$private = $options['private'] ?? false;
5656
$privateFields = $options['private_fields'] ?? [];
5757
$previousObject = $context['graphql_context']['previous_object'] ?? null;
@@ -60,7 +60,7 @@ public function retrieveSubscriptionId(array $context, ?array $result, ?Operatio
6060
$fields['__private_field_'.$privateField] = $this->getResourceId($privateField, $previousObject);
6161
}
6262
}
63-
if ($operation->isCollection()) {
63+
if ($operation instanceof Subscription && $operation->isCollection()) {
6464
$subscriptionId = $this->updateSubscriptionCollectionCacheData(
6565
$iri,
6666
$fields,

src/GraphQl/Tests/Subscription/SubscriptionManagerTest.php

+8-5
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,11 @@ public function testGetPushPayloadsNoHit(): void
183183

184184
$cacheItemProphecy = $this->prophesize(CacheItemInterface::class);
185185
$cacheItemProphecy->isHit()->willReturn(false);
186+
$cacheItemProphecy->isHit()->willReturn(false);
186187
$this->subscriptionsCacheProphecy->getItem('_dummies_2')->willReturn($cacheItemProphecy->reveal());
188+
$this->subscriptionsCacheProphecy->getItem('_dummies')->willReturn($cacheItemProphecy->reveal());
187189

188-
$this->assertEquals([], $this->subscriptionManager->getPushPayloads($object));
190+
$this->assertEquals([], $this->subscriptionManager->getPushPayloads($object, 'update'));
189191
}
190192

191193
public function testGetPushPayloadsHit(): void
@@ -199,16 +201,17 @@ public function testGetPushPayloadsHit(): void
199201
$this->iriConverterProphecy->getIriFromResource($object)->willReturn('/dummies/2');
200202

201203
$cacheItemProphecy = $this->prophesize(CacheItemInterface::class);
202-
$cacheItemProphecy->isHit()->willReturn(true);
204+
$cacheItemProphecy->isHit()->willReturn(true)->shouldBeCalledTimes(2);
203205
$cacheItemProphecy->get()->willReturn([
204206
['subscriptionIdFoo', ['fieldsFoo'], ['resultFoo']],
205207
['subscriptionIdBar', ['fieldsBar'], ['resultBar']],
206208
]);
207209
$this->subscriptionsCacheProphecy->getItem('_dummies_2')->willReturn($cacheItemProphecy->reveal());
210+
$this->subscriptionsCacheProphecy->getItem('_dummies')->willReturn($cacheItemProphecy->reveal());
208211

209212
$this->normalizeProcessor->process(
210213
$object,
211-
(new Subscription())->withName('update_subscription')->withShortName('Dummy'),
214+
(new Subscription())->withName('mercure_subscription')->withShortName('Dummy'),
212215
[],
213216
['fields' => ['fieldsFoo'], 'is_collection' => false, 'is_mutation' => false, 'is_subscription' => true]
214217
)->willReturn(
@@ -217,13 +220,13 @@ public function testGetPushPayloadsHit(): void
217220

218221
$this->normalizeProcessor->process(
219222
$object,
220-
(new Subscription())->withName('update_subscription')->withShortName('Dummy'),
223+
(new Subscription())->withName('mercure_subscription')->withShortName('Dummy'),
221224
[],
222225
['fields' => ['fieldsBar'], 'is_collection' => false, 'is_mutation' => false, 'is_subscription' => true]
223226
)->willReturn(
224227
['resultBar', 'clientSubscriptionId' => 'client-subscription-id']
225228
);
226229

227-
$this->assertEquals([['subscriptionIdFoo', ['newResultFoo']]], $this->subscriptionManager->getPushPayloads($object));
230+
$this->assertEquals([['subscriptionIdFoo', ['newResultFoo']]], $this->subscriptionManager->getPushPayloads($object, 'update'));
228231
}
229232
}

src/Symfony/Tests/Doctrine/EventListener/PublishMercureUpdatesListenerTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ public function testPublishGraphQlUpdates(): void
327327
$graphQlSubscriptionManagerProphecy = $this->prophesize(GraphQlSubscriptionManagerInterface::class);
328328
$graphQlSubscriptionId = 'subscription-id';
329329
$graphQlSubscriptionData = ['data'];
330-
$graphQlSubscriptionManagerProphecy->getPushPayloads($toUpdate)->willReturn([[$graphQlSubscriptionId, $graphQlSubscriptionData]]);
330+
$graphQlSubscriptionManagerProphecy->getPushPayloads($toUpdate, 'update')->willReturn([[$graphQlSubscriptionId, $graphQlSubscriptionData]]);
331331
$graphQlMercureSubscriptionIriGenerator = $this->prophesize(GraphQlMercureSubscriptionIriGeneratorInterface::class);
332332
$topicIri = 'subscription-topic-iri';
333333
$graphQlMercureSubscriptionIriGenerator->generateTopicIri($graphQlSubscriptionId)->willReturn($topicIri);

0 commit comments

Comments
 (0)