diff --git a/templates/components/FoldersGrid.html.twig b/templates/components/FoldersGrid.html.twig index 5341b44..d9047eb 100644 --- a/templates/components/FoldersGrid.html.twig +++ b/templates/components/FoldersGrid.html.twig @@ -11,7 +11,7 @@ {% endfor %} {% for file in files %} - + {% endfor %} {% endif %} diff --git a/tests/Web/FileDeleteWebTest.php b/tests/Web/FileDeleteWebTest.php index ecaf87a..da03a9a 100644 --- a/tests/Web/FileDeleteWebTest.php +++ b/tests/Web/FileDeleteWebTest.php @@ -265,4 +265,43 @@ public function testDeleteRequiresAuthentication(): void $this->assertResponseRedirects('/login'); } + + public function testExplorerRendersDeleteButtonWithInAlbumTrueWhenFileHasMediaInAlbum(): void + { + // Non-régression rendu HTML (#246) : file.id (objet Uuid) doit être + // comparé correctement à filesInAlbum (strings RFC4122) côté Twig, + // sinon le bouton reçoit toujours inAlbum=false et la modale + // n'affiche jamais l'option "conserver dans mes albums". + $user = $this->createUser(); + $media = $this->createMediaFile($user, 'vacances.jpg', 'photo'); + $file = $media->getFile(); + $folderId = $file->getFolder()->getId()->toRfc4122(); + + $album = new Album('Vacances', $user); + $this->em->persist($album); + $this->em->persist(new AlbumMedia($album, $media, 0)); + $this->em->flush(); + $this->em->clear(); + + $this->login(); + $crawler = $this->client->request('GET', '/explorer?folder=' . $folderId); + + $this->assertResponseIsSuccessful(); + $button = $crawler->filter('[data-testid="delete-file-btn-' . $file->getId() . '"]'); + $this->assertStringContainsString('true)', $button->attr('onclick')); + } + + public function testExplorerRendersDeleteButtonWithInAlbumFalseWhenFileHasNoMedia(): void + { + $user = $this->createUser(); + $folder = $this->createFolder('Docs', $user); + $file = $this->createFile('rapport.txt', $folder, $user); + + $this->login(); + $crawler = $this->client->request('GET', '/explorer?folder=' . $folder->getId()->toRfc4122()); + + $this->assertResponseIsSuccessful(); + $button = $crawler->filter('[data-testid="delete-file-btn-' . $file->getId() . '"]'); + $this->assertStringContainsString('false)', $button->attr('onclick')); + } }