diff --git a/src/Composer/InstalledPackageResolver.php b/src/Composer/InstalledPackageResolver.php index c2046cfed6f..3593c9e5d4c 100644 --- a/src/Composer/InstalledPackageResolver.php +++ b/src/Composer/InstalledPackageResolver.php @@ -21,15 +21,14 @@ final class InstalledPackageResolver */ private ?array $resolvedInstalledPackages = null; - public function __construct( - private readonly ?string $projectDirectory = null - ) { + private readonly string $projectDirectory; + + public function __construct(?string $projectDirectory = null) + { // fallback to root project directory - if ($projectDirectory === null) { - $projectDirectory = getcwd(); - } + $this->projectDirectory = $projectDirectory ?? (string) getcwd(); - Assert::directory($projectDirectory); + Assert::directory($this->projectDirectory); } /** diff --git a/tests/Composer/InstalledPackageResolverTest.php b/tests/Composer/InstalledPackageResolverTest.php index 8b26d761324..81396d6edf3 100644 --- a/tests/Composer/InstalledPackageResolverTest.php +++ b/tests/Composer/InstalledPackageResolverTest.php @@ -18,4 +18,13 @@ public function test(): void $this->assertContainsOnlyInstancesOf(InstalledPackage::class, $installedPackages); $this->assertGreaterThan(77, count($installedPackages)); } + + public function testFallbackToCurrentWorkingDirectory(): void + { + $installedPackageResolver = new InstalledPackageResolver(); + $installedPackages = $installedPackageResolver->resolve(); + + $this->assertContainsOnlyInstancesOf(InstalledPackage::class, $installedPackages); + $this->assertGreaterThan(77, count($installedPackages)); + } }