Skip to content

Commit 7fed6fa

Browse files
committed
Fix API tests relying on package providers
1 parent a32fbf3 commit 7fed6fa

2 files changed

Lines changed: 33 additions & 7 deletions

File tree

‎tests/FunctionalTests/Controller/ApiControllerPublicTest.php‎

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use CodedMonkey\Dirigent\Doctrine\Entity\Package;
88
use CodedMonkey\Dirigent\Doctrine\Entity\Registry;
99
use CodedMonkey\Dirigent\Entity\RegistryPackageMirroring;
10+
use CodedMonkey\Dirigent\Package\PackageProviderManager;
1011
use CodedMonkey\Dirigent\Tests\FunctionalTests\PublicKernel;
1112
use CodedMonkey\Dirigent\Tests\Helper\EntityManagerTestTrait;
1213
use CodedMonkey\Dirigent\Tests\Helper\KernelTestCaseTrait;
@@ -42,24 +43,34 @@ public function testRoot(): void
4243
], $rootData);
4344
}
4445

45-
public function testPackagMetadata(): void
46+
public function testPackageMetadata(): void
4647
{
4748
self::bootKernel();
4849

49-
$packageData = $this->requestJson('/p2/psr/log.json', 'GET');
50+
$package = $this->createPackageWithProvider();
51+
$packageName = $package->getName();
52+
53+
$packageData = $this->requestJson("/p2/$packageName.json", 'GET');
5054

5155
$this->assertArrayHasKey('packages', $packageData);
52-
$this->assertArrayHasKey('psr/log', $packageData['packages']);
56+
$this->assertArrayHasKey($packageName, $packageData['packages']);
57+
$this->assertCount(1, $packageData['packages'][$packageName]);
58+
$this->assertSame('1.0.0', $packageData['packages'][$packageName][0]['version']);
5359
}
5460

5561
public function testPackageMetadataDev(): void
5662
{
5763
self::bootKernel();
5864

59-
$packageData = $this->requestJson('/p2/psr/log~dev.json', 'GET');
65+
$package = $this->createPackageWithProvider();
66+
$packageName = $package->getName();
67+
68+
$packageData = $this->requestJson("/p2/$packageName~dev.json", 'GET');
6069

6170
$this->assertArrayHasKey('packages', $packageData);
62-
$this->assertArrayHasKey('psr/log', $packageData['packages']);
71+
$this->assertArrayHasKey($packageName, $packageData['packages']);
72+
$this->assertCount(1, $packageData['packages'][$packageName]);
73+
$this->assertSame('dev-main', $packageData['packages'][$packageName][0]['version']);
6374
}
6475

6576
public function testPackageMetadataIsNotFound(): void
@@ -98,6 +109,22 @@ public function testPackageMetadataIsMirroredOnRequest(): void
98109
$this->assertArrayHasKey('psr/container', $packageData['packages']);
99110
}
100111

112+
private function createPackageWithProvider(): Package
113+
{
114+
[$package, $version, $metadata] = $this->createMockPackageWithMetadata();
115+
$devVersion = $this->createMockVersion($package, 'dev-main', true);
116+
$devMetadata = $this->createMockMetadata($devVersion);
117+
$devVersion->setCurrentMetadata($devMetadata);
118+
119+
// Serve the generated provider without triggering a remote metadata update.
120+
$package->setUpdatedAt(new \DateTimeImmutable());
121+
$this->persistEntities($package, $version, $metadata, $devVersion, $devMetadata);
122+
123+
$this->getService(PackageProviderManager::class)->dump($package);
124+
125+
return $package;
126+
}
127+
101128
private function requestJson(...$requestArguments)
102129
{
103130
$request = Request::create(...$requestArguments);

‎tests/FunctionalTests/PublicKernel.php‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44

55
namespace CodedMonkey\Dirigent\Tests\FunctionalTests;
66

7-
use CodedMonkey\Dirigent\Kernel;
87
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
98

10-
class PublicKernel extends Kernel
9+
class PublicKernel extends TestKernel
1110
{
1211
#[\Override]
1312
protected function configureContainer(ContainerConfigurator $container): void

0 commit comments

Comments
 (0)