From 776acd8c27b39f8a2d9981be1c1529976e3300c2 Mon Sep 17 00:00:00 2001 From: TangRufus Date: Wed, 15 Oct 2025 20:21:18 +0100 Subject: [PATCH] Test `Matrix` does not invoke `ReleasesInterface::all()` when invalid constraint --- src/Matrices/Matrix.php | 3 +-- tests/Unit/Matrices/MatrixTest.php | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/Matrices/Matrix.php b/src/Matrices/Matrix.php index 0685bbf..aca2aea 100644 --- a/src/Matrices/Matrix.php +++ b/src/Matrices/Matrix.php @@ -14,7 +14,7 @@ { public function __construct( private ReleasesInterface $releases, - private VersionParser $versionParser = new VersionParser(), + private VersionParser $versionParser = new VersionParser, ) {} /** @@ -36,6 +36,5 @@ public function satisfiedBy(string $constraint): array previous: $e ); } - } } diff --git a/tests/Unit/Matrices/MatrixTest.php b/tests/Unit/Matrices/MatrixTest.php index 43b0650..b64a3f5 100644 --- a/tests/Unit/Matrices/MatrixTest.php +++ b/tests/Unit/Matrices/MatrixTest.php @@ -5,6 +5,7 @@ namespace Tests\Unit\Matrices; use Mockery; +use Throwable; use TypistTech\PhpMatrix\Exceptions\UnexpectedValueException; use TypistTech\PhpMatrix\Matrices\Matrix; use TypistTech\PhpMatrix\Matrices\MatrixInterface; @@ -81,5 +82,22 @@ $matrix->satisfiedBy('invalid constraint'); })->throws(UnexpectedValueException::class); + + it('does not invoke ReleasesInterface::all() when invalid constraint', function () { + $releases = Mockery::mock(ReleasesInterface::class); + + $releases->expects() + ->all() + ->withAnyArgs() + ->never(); + + $matrix = new Matrix($releases); + + try { + $matrix->satisfiedBy('invalid constraint'); + } catch (Throwable $e) { + // No-op. + } + }); }); });