From a6d195557a9392e8b8298a7dd72b69bff0f9c84d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 28 Feb 2026 13:42:32 +0000 Subject: [PATCH 1/2] Initial plan From eb6e4d652082b0f78ca67340402ca84f655a1f52 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 28 Feb 2026 14:00:17 +0000 Subject: [PATCH 2/2] fix: correct mock setups in tests and improve SnippetGeneratorTest Co-authored-by: garak <179866+garak@users.noreply.github.com> --- .../Model/UseCase/CreateCircleCiBadgeTest.php | 17 +++-------------- .../UseCase/CreateComposerLockBadgeTest.php | 17 +++-------------- tests/Service/SnippetGeneratorTest.php | 8 ++++++-- 3 files changed, 12 insertions(+), 30 deletions(-) diff --git a/tests/Badge/Model/UseCase/CreateCircleCiBadgeTest.php b/tests/Badge/Model/UseCase/CreateCircleCiBadgeTest.php index 167bd188..c2337d31 100644 --- a/tests/Badge/Model/UseCase/CreateCircleCiBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateCircleCiBadgeTest.php @@ -88,26 +88,15 @@ public static function shouldCreateCircleCiBadgeProvider(): array public function testShouldCreateDefaultBadgeOnError(): void { - $package = $this->createMockWithoutInvokingTheOriginalConstructor( - Package::class, - ['hasStableVersion', 'getLatestStableVersion', 'getOriginalObject'] - ); + $package = $this->createMockWithoutInvokingTheOriginalConstructor(Package::class); $this->repository ->method('fetchByRepository') ->willReturn($package); - $repo = $this->createMockWithoutInvokingTheOriginalConstructor( - \Packagist\Api\Result\Package::class, - ['getRepository'] - ); - $repo->expects($this->once()) - ->method('getRepository') - ->will($this->throwException(new \RuntimeException())); - $package->expects($this->once()) - ->method('getOriginalObject') - ->willReturn($repo); + ->method('getRepository') + ->willThrowException(new \RuntimeException()); $repository = 'PUGX/badge-poser'; $badge = $this->useCase->createCircleCiBadge($repository); diff --git a/tests/Badge/Model/UseCase/CreateComposerLockBadgeTest.php b/tests/Badge/Model/UseCase/CreateComposerLockBadgeTest.php index e37f8bf1..7604e5e0 100644 --- a/tests/Badge/Model/UseCase/CreateComposerLockBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateComposerLockBadgeTest.php @@ -17,7 +17,6 @@ use App\Badge\Service\ClientStrategy; use App\Badge\ValueObject\Repository; use GuzzleHttp\ClientInterface; -use Packagist\Api\Result\Package; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -55,15 +54,10 @@ public function testShouldCreateComposerLockBadge(int $returnCode, string $expec ->method('fetchByRepository') ->willReturn($package); - $repo = $this->createMock(Package::class); - $repo->expects($this->once()) + $package->expects($this->once()) ->method('getRepository') ->willReturn('https://github.com/user/repository'); - $package->expects($this->once()) - ->method('getOriginalObject') - ->willReturn($repo); - $package->expects($this->once()) ->method('getDefaultBranch') ->willReturn('master'); @@ -90,14 +84,9 @@ public function testShouldCreateDefaultBadgeOnError(): void ->method('fetchByRepository') ->willReturn($package); - $repo = $this->createMock(Package::class); - $repo->expects($this->once()) - ->method('getRepository') - ->will($this->throwException(new \RuntimeException())); - $package->expects($this->once()) - ->method('getOriginalObject') - ->willReturn($repo); + ->method('getRepository') + ->willThrowException(new \RuntimeException()); $repository = 'PUGX/badge-poser'; $badge = $this->useCase->createComposerLockBadge($repository); diff --git a/tests/Service/SnippetGeneratorTest.php b/tests/Service/SnippetGeneratorTest.php index e886215f..f65c0ce1 100644 --- a/tests/Service/SnippetGeneratorTest.php +++ b/tests/Service/SnippetGeneratorTest.php @@ -169,7 +169,7 @@ public function testGenerateAllSnippetsWithAndWithoutFeaturedBadges(): void ->willReturn($routeCollection); $router ->method('generate') - ->willReturnCallback(function (string $name, array $params = []) { + ->willReturnCallback(function (string $name, array $params = [], int $referenceType = RouterInterface::ABSOLUTE_URL) { if ('pugx_badge_packagist' === $name) { return 'repo_url'; } @@ -206,7 +206,11 @@ public function testGenerateAllSnippetsWithAndWithoutFeaturedBadges(): void 'pugx_badge_circleci' => 'img_url12', ]; - return $map[$name] ?? 'repo_url'; + if (!\array_key_exists($name, $map)) { + throw new \InvalidArgumentException(\sprintf('Unexpected route name "%s" in SnippetGeneratorTest router mock.', $name)); + } + + return $map[$name]; }); $poser = $this->getMockBuilder(Poser::class)