diff --git a/ansible/deploy.yml b/ansible/deploy.yml index 2bea62f..559a983 100644 --- a/ansible/deploy.yml +++ b/ansible/deploy.yml @@ -138,10 +138,11 @@ - name: Wait for LibreTranslate to be healthy shell: | for i in $(seq 1 60); do - docker compose -f docker-compose-prod.yml exec -T libretranslate curl -sf http://localhost:5000/languages >/dev/null 2>&1 && exit 0 + docker compose -f docker-compose-prod.yml exec -T php curl -sf http://libretranslate:5000/languages >/dev/null 2>&1 && exit 0 sleep 5 done - exit 1 + echo "LibreTranslate not ready after 5 minutes, skipping translation" + exit 0 args: chdir: /var/www/e-ticket @@ -149,6 +150,7 @@ command: make trans_prod args: chdir: /var/www/e-ticket + ignore_errors: true - name: Ensure uploads directories exist with correct permissions file: diff --git a/tests/Controller/AccountControllerTest.php b/tests/Controller/AccountControllerTest.php index 81f5efd..725fed5 100644 --- a/tests/Controller/AccountControllerTest.php +++ b/tests/Controller/AccountControllerTest.php @@ -1955,6 +1955,37 @@ class AccountControllerTest extends WebTestCase return $category; } + public function testEventQrCode(): void + { + $client = static::createClient(); + $em = static::getContainer()->get(EntityManagerInterface::class); + $user = $this->createUser(['ROLE_ORGANIZER'], true); + + $event = $this->createEvent($em, $user); + + $client->loginUser($user); + $client->request('GET', '/mon-compte/evenement/'.$event->getId().'/qrcode'); + + self::assertResponseIsSuccessful(); + self::assertSame('image/png', $client->getResponse()->headers->get('Content-Type')); + self::assertStringContainsString('attachment', $client->getResponse()->headers->get('Content-Disposition')); + } + + public function testEventQrCodeDeniedForOtherUser(): void + { + $client = static::createClient(); + $em = static::getContainer()->get(EntityManagerInterface::class); + $user = $this->createUser(['ROLE_ORGANIZER'], true); + $otherUser = $this->createUser(['ROLE_ORGANIZER'], true); + + $event = $this->createEvent($em, $user); + + $client->loginUser($otherUser); + $client->request('GET', '/mon-compte/evenement/'.$event->getId().'/qrcode'); + + self::assertResponseStatusCodeSame(403); + } + public function testGetAllowedBilletTypesBasic(): void { $types = \App\Controller\AccountController::getAllowedBilletTypes('basic');