Skip to content

Commit f71506a

Browse files
committed
CI: Fix tests for message deletion
1 parent 3bf397c commit f71506a

File tree

2 files changed

+54
-15
lines changed

2 files changed

+54
-15
lines changed

src/CoreBundle/Entity/Message.php

+3
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,9 @@ public function getReceiversCc(): array
222222
;
223223
}
224224

225+
/**
226+
* @return array<int, MessageRelUser>
227+
*/
225228
#[Groups(['message:read'])]
226229
public function getReceiversSender(): array
227230
{

tests/CoreBundle/Repository/MessageRepositoryTest.php

+51-15
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,6 @@ public function testDeleteMessageTag(): void
239239
public function testDeleteMessageWithTag(): void
240240
{
241241
$em = $this->getEntityManager();
242-
$userRepo = self::getContainer()->get(UserRepository::class);
243242
$messageTagRepo = self::getContainer()->get(MessageTagRepository::class);
244243
$messageRepo = self::getContainer()->get(MessageRepository::class);
245244
$messageRelUserRepo = $em->getRepository(MessageRelUser::class);
@@ -251,9 +250,9 @@ public function testDeleteMessageWithTag(): void
251250

252251
$messageRepo->delete($message);
253252

254-
$this->assertSame(0, $messageRepo->count([]));
255-
$this->assertSame(0, $messageRelUserRepo->count([]));
256-
$this->assertSame(0, $messageTagRepo->count([]));
253+
$this->assertSame(1, $messageRepo->count([]));
254+
$this->assertSame(1, $messageRelUserRepo->count([]));
255+
$this->assertSame(2, $messageTagRepo->count([]));
257256

258257
$this->assertNotNull($this->getUser('admin'));
259258
$this->assertNotNull($this->getUser('test'));
@@ -381,6 +380,15 @@ public function testDeleteMessage(): void
381380
->addReceiverTo($testUser)
382381
;
383382

383+
$messageRelUserSender = new MessageRelUser();
384+
$messageRelUserSender->setMessage($message)
385+
->setReceiver($admin)
386+
->setReceiverType(MessageRelUser::TYPE_SENDER)
387+
;
388+
389+
$em->persist($messageRelUserSender);
390+
$em->flush();
391+
384392
$this->assertHasNoEntityViolations($message);
385393
$messageRepo->update($message);
386394

@@ -418,18 +426,26 @@ public function testDeleteMessage(): void
418426

419427
$em->clear();
420428

421-
// Delete message.
429+
/** @var Message $message */
422430
$message = $messageRepo->find($message->getId());
423431
$messageRepo->delete($message);
424432

425-
// No messages.
426-
$this->assertSame(0, $messageRepo->count([]));
427-
// No message_rel_user.
428-
$this->assertSame(0, $messageRelUserRepo->count([]));
433+
// Message is not deleted.
434+
$this->assertSame(1, $messageRepo->count([]));
435+
// Message has 2 message_rel_user (sender and receiver).
436+
$this->assertSame(2, $messageRelUserRepo->count([]));
429437
// No attachments.
430-
$this->assertSame(0, $messageAttachmentRepo->count([]));
438+
$this->assertSame(1, $messageAttachmentRepo->count([]));
431439
// 2 tags still exists.
432-
$this->assertSame(0, $messageTagRepo->count([]));
440+
$this->assertSame(1, $messageTagRepo->count([]));
441+
442+
/** @var Message $message */
443+
$message = $messageRepo->find($message->getId());
444+
445+
$em->remove($message->getReceiversSender()[0]);
446+
$em->flush();
447+
448+
$this->assertSame(1, $message->getReceivers()->count());
433449
}
434450

435451
public function testCreateMessageWithApiAsOtherUser(): void
@@ -490,6 +506,7 @@ public function testCreateMessageWithApiAsOtherUser(): void
490506

491507
public function testDeleteMessageWithApi(): void
492508
{
509+
/** @var MessageRepository $messageRepo */
493510
$messageRepo = self::getContainer()->get(MessageRepository::class);
494511

495512
$fromUser = $this->createUser('from');
@@ -531,12 +548,24 @@ public function testDeleteMessageWithApi(): void
531548
'DELETE',
532549
$id,
533550
);
534-
$this->assertResponseStatusCodeSame(403);
551+
$this->assertResponseStatusCodeSame(Response::HTTP_FORBIDDEN);
535552

536553
/** @var Message $message */
537554
$message = $messageRepo->find($messageId);
538555

539-
$this->assertSame(1, $message->getReceivers()->count());
556+
$senderRelation = $message->getReceiversSender()[0];
557+
$senderRelationIri = $this->findIriBy(
558+
MessageRelUser::class,
559+
['id' => $senderRelation->getId()]
560+
);
561+
562+
$this
563+
->createClientWithCredentials($tokenFrom)
564+
->request('DELETE', $senderRelationIri)
565+
;
566+
567+
$this->assertResponseIsSuccessful();
568+
$this->assertResponseStatusCodeSame(Response::HTTP_NO_CONTENT);
540569

541570
// Receiver deletes the message.
542571
$tokenTo = $this->getUserToken(
@@ -547,11 +576,18 @@ public function testDeleteMessageWithApi(): void
547576
true
548577
);
549578

579+
$receiverRelation = $message->getFirstReceiver();
580+
$senderRelationIri = $this->findIriBy(
581+
MessageRelUser::class,
582+
['id' => $receiverRelation?->getId()]
583+
);
584+
550585
$this->createClientWithCredentials($tokenTo)->request(
551586
'DELETE',
552-
$id,
587+
$senderRelationIri,
553588
);
554-
$this->assertResponseStatusCodeSame(403);
589+
$this->assertResponseIsSuccessful();
590+
$this->assertResponseStatusCodeSame(Response::HTTP_NO_CONTENT);
555591
}
556592

557593
public function testGetMessageByUser(): void

0 commit comments

Comments
 (0)