feat: offer the accommodation booking PDF download in every status
This commit is contained in:
1 parent
67c0c2fb0c
commit
ec10ca3623
4 files changed
+16
-38
No files matched your search
@@ -18,9 +18,10 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
*/
|
||||
class PdfControllerTest extends TestCase
|
||||
{
|
||||
public function testAConfirmedBookingIsDownloadedAsPdf(): void
|
||||
#[DataProvider('statuses')]
|
||||
public function testABookingInAnyStatusIsDownloadedAsPdf(AccommodationBookingStatus $status): void
|
||||
{
|
||||
$booking = $this->booking(AccommodationBookingStatus::Confirmed);
|
||||
$booking = $this->booking($status);
|
||||
|
||||
$generator = $this->createMock(AccommodationBookingPdfGenerator::class);
|
||||
$generator->expects(self::once())
|
||||
@@ -33,29 +34,14 @@ class PdfControllerTest extends TestCase
|
||||
self::assertSame(Response::HTTP_OK, $response->getStatusCode());
|
||||
}
|
||||
|
||||
#[DataProvider('nonConfirmedStatuses')]
|
||||
public function testABookingThatIsNotConfirmedCannotBeDownloaded(AccommodationBookingStatus $status): void
|
||||
{
|
||||
$generator = $this->createMock(AccommodationBookingPdfGenerator::class);
|
||||
$generator->expects(self::never())->method('createDownloadResponse');
|
||||
|
||||
$controller = new TestablePdfController($generator);
|
||||
|
||||
$response = $controller->index($this->booking($status));
|
||||
|
||||
self::assertSame(Response::HTTP_FOUND, $response->getStatusCode());
|
||||
self::assertSame(['warning'], array_column($controller->flashes, 'type'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return iterable<string, array{AccommodationBookingStatus}>
|
||||
*/
|
||||
public static function nonConfirmedStatuses(): iterable
|
||||
public static function statuses(): iterable
|
||||
{
|
||||
yield 'draft' => [AccommodationBookingStatus::Draft];
|
||||
yield 'open' => [AccommodationBookingStatus::Open];
|
||||
yield 'received' => [AccommodationBookingStatus::Received];
|
||||
yield 'discarded' => [AccommodationBookingStatus::Discarded];
|
||||
foreach (AccommodationBookingStatus::cases() as $status) {
|
||||
yield $status->name => [$status];
|
||||
}
|
||||
}
|
||||
|
||||
public function testAFailingGeneratorRedirectsWithAFlash(): void
|
||||
|
||||
Reference in new issue
Block a user