1
0
Fork 0
mirror of https://github.com/composer/composer synced 2025-05-10 09:02:59 +00:00

Fix UX when a non-required plugin is still present in vendor dir (#12000)

Composer now skips it and does not prompt if it is not allowed to run, fixes #11944
This commit is contained in:
Jordi Boggiano 2024-05-31 10:29:56 +02:00 committed by GitHub
parent 37d722e73c
commit c1be804a0c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 40 additions and 9 deletions

View file

@ -24,13 +24,13 @@ class RepositoryUtilsTest extends TestCase
* @param PackageInterface[] $pkgs
* @param string[] $expected
*/
public function testFilterRequiredPackages(array $pkgs, PackageInterface $requirer, array $expected): void
public function testFilterRequiredPackages(array $pkgs, PackageInterface $requirer, array $expected, bool $includeRequireDev = false): void
{
$expected = array_map(static function (string $name) use ($pkgs): PackageInterface {
return $pkgs[$name];
}, $expected);
self::assertSame($expected, RepositoryUtils::filterRequiredPackages($pkgs, $requirer));
self::assertSame($expected, RepositoryUtils::filterRequiredPackages($pkgs, $requirer, $includeRequireDev));
}
/**
@ -72,6 +72,10 @@ class RepositoryUtilsTest extends TestCase
self::configureLinks($requirer, ['require-dev' => ['required/a' => '*']]);
yield 'require-dev has no effect' => [$pkgs, $requirer, []];
$requirer = self::getPackage('requirer/pkg');
self::configureLinks($requirer, ['require-dev' => ['required/a' => '*']]);
yield 'require-dev works if called with it enabled' => [$pkgs, $requirer, ['a'], true];
$requirer = self::getPackage('requirer/pkg');
self::configureLinks($requirer, ['require' => ['required/a' => '*']]);
yield 'simple require' => [$pkgs, $requirer, ['a']];