diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cbb542e5..7c7f131f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -50,5 +50,8 @@ jobs: with: dependency-versions: '${{ matrix.deps }}' + - name: 'Validate dependencies' + run: './vendor/bin/composer-dependency-analyser --show-all-usages' + - name: 'Run test suite' run: 'php vendor/bin/phpunit' diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index bcc531f2..418c4639 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -7,6 +7,7 @@ __DIR__ . '/src', __DIR__ . '/tests', ]) + ->notPath('var') ; return (new PhpCsFixer\Config()) diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php new file mode 100644 index 00000000..ecd43ca0 --- /dev/null +++ b/composer-dependency-analyser.php @@ -0,0 +1,22 @@ +addPathToScan(__DIR__.'/src', isDev: false) + ->addPathToScan(__DIR__.'/src/DataCollector', isDev: true) + ->addPathToScan(__DIR__.'/src/Debug', isDev: true) + ->addPathToScan(__DIR__.'/tests', isDev: true) + + ->ignoreErrorsOnPackage('symfony/routing', [ + ErrorType::DEV_DEPENDENCY_IN_PROD, + ]) + ->ignoreErrorsOnPackage('twig/twig', [ + ErrorType::DEV_DEPENDENCY_IN_PROD, + ]) +; diff --git a/composer.json b/composer.json index 598513c2..1ffd9ef4 100644 --- a/composer.json +++ b/composer.json @@ -23,14 +23,15 @@ "require": { "php": ">=8.1", "ext-json": "*", + "psr/container": "^2.0", + "psr/log": "^3.0", "symfony/config": "^6.4 || ^7.0", "symfony/dependency-injection": "^6.4 || ^7.0", "symfony/filesystem": "^6.4 || ^7.0", - "symfony/http-client": "^6.4 || ^7.0", + "symfony/http-client-contracts": "^3.5", "symfony/http-foundation": "^6.4 || ^7.0", "symfony/http-kernel": "^6.4 || ^7.0", - "symfony/mime": "^6.4 || ^7.0", - "symfony/string": "^6.4 || ^7.0" + "symfony/mime": "^6.4 || ^7.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.41", @@ -38,11 +39,15 @@ "phpstan/phpstan": "^1.10", "phpstan/phpstan-symfony": "^1.3", "phpunit/phpunit": "^10.4", + "shipmonk/composer-dependency-analyser": "^1.7", "symfony/framework-bundle": "^6.4 || ^7.0", + "symfony/http-client": "^6.4 || ^7.0", "symfony/monolog-bundle": "^3.10", + "symfony/routing": "^6.4 || ^7.0", "symfony/stopwatch": "^6.4 || ^7.0", "symfony/twig-bundle": "^6.4 || ^7.0", - "symfony/var-dumper": "^6.4 || ^7.0" + "symfony/var-dumper": "^6.4 || ^7.0", + "twig/twig": "^3.14" }, "config": { "allow-plugins": { diff --git a/tests/Builder/Pdf/AbstractChromiumPdfBuilderTest.php b/tests/Builder/Pdf/AbstractChromiumPdfBuilderTest.php index 980b651c..d5155cfc 100644 --- a/tests/Builder/Pdf/AbstractChromiumPdfBuilderTest.php +++ b/tests/Builder/Pdf/AbstractChromiumPdfBuilderTest.php @@ -8,6 +8,7 @@ use PHPUnit\Framework\Attributes\UsesClass; use Sensiolabs\GotenbergBundle\Builder\Pdf\AbstractChromiumPdfBuilder; use Sensiolabs\GotenbergBundle\Builder\Pdf\AbstractPdfBuilder; +use Sensiolabs\GotenbergBundle\Enumeration\PaperSize; use Sensiolabs\GotenbergBundle\Enumeration\PaperSizeInterface; use Sensiolabs\GotenbergBundle\Enumeration\PdfFormat; use Sensiolabs\GotenbergBundle\Enumeration\Unit; @@ -22,6 +23,7 @@ #[CoversClass(AbstractChromiumPdfBuilder::class)] #[UsesClass(AbstractPdfBuilder::class)] #[UsesClass(Unit::class)] +#[UsesClass(PaperSize::class)] #[UsesClass(AssetBaseDirFormatter::class)] #[UsesClass(GotenbergAssetExtension::class)] class AbstractChromiumPdfBuilderTest extends AbstractBuilderTestCase