Configurable PDF exports (#5641)
This commit is contained in:
@@ -24,7 +24,7 @@ use App\Event\ActivityMetaDisplayEvent;
|
||||
use App\Event\CustomerMetaDisplayEvent;
|
||||
use App\Event\ProjectMetaDisplayEvent;
|
||||
use App\Event\TimesheetMetaDisplayEvent;
|
||||
use App\Export\TimesheetExportInterface;
|
||||
use App\Export\ExportRendererInterface;
|
||||
use App\Repository\Query\TimesheetQuery;
|
||||
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
@@ -33,7 +33,7 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
abstract class AbstractRendererTestCase extends KernelTestCase
|
||||
{
|
||||
protected function render(TimesheetExportInterface $renderer): Response
|
||||
protected function render(ExportRendererInterface $renderer): Response
|
||||
{
|
||||
$customer = new Customer('Customer Name');
|
||||
$customer->setNumber('A-0123456789');
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Kimai time-tracking app.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Export\Timesheet;
|
||||
|
||||
use App\Activity\ActivityStatisticService;
|
||||
use App\Export\Timesheet\HtmlRenderer;
|
||||
use App\Project\ProjectStatisticService;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Twig\Environment;
|
||||
|
||||
#[CoversClass(HtmlRenderer::class)]
|
||||
#[Group('integration')]
|
||||
class HtmlRendererTest extends AbstractRendererTestCase
|
||||
{
|
||||
public function testConfiguration(): void
|
||||
{
|
||||
$sut = new HtmlRenderer(
|
||||
$this->createMock(Environment::class),
|
||||
new EventDispatcher(),
|
||||
$this->createMock(ProjectStatisticService::class),
|
||||
$this->createMock(ActivityStatisticService::class)
|
||||
);
|
||||
|
||||
self::assertEquals('print', $sut->getId());
|
||||
self::assertEquals('print', $sut->getTitle());
|
||||
}
|
||||
|
||||
public function testRender(): void
|
||||
{
|
||||
$kernel = self::bootKernel();
|
||||
/** @var Environment $twig */
|
||||
$twig = self::getContainer()->get('twig');
|
||||
/** @var RequestStack $stack */
|
||||
$stack = self::getContainer()->get('request_stack');
|
||||
$request = new Request();
|
||||
$request->setLocale('en');
|
||||
$stack->push($request);
|
||||
|
||||
$sut = new HtmlRenderer(
|
||||
$twig,
|
||||
new EventDispatcher(),
|
||||
$this->createMock(ProjectStatisticService::class),
|
||||
$this->createMock(ActivityStatisticService::class)
|
||||
);
|
||||
|
||||
$response = $this->render($sut);
|
||||
|
||||
$content = $response->getContent();
|
||||
|
||||
self::assertStringContainsString('>1:50<', $content);
|
||||
}
|
||||
}
|
||||
@@ -10,8 +10,10 @@
|
||||
namespace App\Tests\Export\Timesheet;
|
||||
|
||||
use App\Export\Base\PDFRenderer;
|
||||
use App\Export\Base\RendererTrait;
|
||||
use App\Pdf\HtmlToPdfConverter;
|
||||
use App\Pdf\MPdfConverter;
|
||||
use App\Pdf\PdfRendererTrait;
|
||||
use App\Project\ProjectStatisticService;
|
||||
use App\Tests\Mocks\FileHelperFactory;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
@@ -20,9 +22,8 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Twig\Environment;
|
||||
|
||||
/**
|
||||
* @covers \App\Export\Base\RendererTrait
|
||||
*/
|
||||
#[CoversClass(PDFRendererTrait::class)]
|
||||
#[CoversClass(RendererTrait::class)]
|
||||
#[CoversClass(PDFRenderer::class)]
|
||||
#[Group('integration')]
|
||||
class PdfRendererTest extends AbstractRendererTestCase
|
||||
|
||||
Reference in New Issue
Block a user