From 19e5d9ec6cad1af43ebdb7417594a76f5822ca60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20Eugon=C3=A9?= Date: Tue, 25 Feb 2025 16:19:30 +0100 Subject: [PATCH] Tests packages reference expected version --- composer.json | 5 ++++ tests/convention/Dependency/PackagesTest.php | 25 ++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/composer.json b/composer.json index 5545b56..865cd29 100644 --- a/composer.json +++ b/composer.json @@ -102,5 +102,10 @@ "Yokai\\Batch\\Tests\\Bridge\\Symfony\\Uid\\": "src/batch-symfony-uid/tests/", "Yokai\\Batch\\Tests\\Bridge\\Symfony\\Validator\\": "src/batch-symfony-validator/tests/" } + }, + "extra": { + "yokai": { + "require": "^0.7.0" + } } } diff --git a/tests/convention/Dependency/PackagesTest.php b/tests/convention/Dependency/PackagesTest.php index 22b6e48..4f51841 100644 --- a/tests/convention/Dependency/PackagesTest.php +++ b/tests/convention/Dependency/PackagesTest.php @@ -91,6 +91,31 @@ public function testPackagesAreUsingSameDependencyVersions(): void } } + /** + * Every individual package must declare explicit dependencies, based on use statements. + * + * @dataProvider packages + */ + public function testPackagesAreUsingCurrentYokaiVersion(Package $package): void + { + $expectedVersion = '^0.7.0'; //todo + + $expected = []; + $actual = []; + foreach ($package->composer->require() as $require => $version) { + if (\str_starts_with($require, 'yokai/')) { + $expected[$require] = $expectedVersion; + $actual[$require] = $version; + } + } + + self::assertSame( + $expected, + $actual, + "{$package->name} must use current yokai/* packages version: {$expectedVersion}.", + ); + } + public function packages(): iterable { /** @var Package $package */