Skip to content

Commit

Permalink
Add a new test to confirm that show --direct <name> works with direct…
Browse files Browse the repository at this point in the history
… dependents/dev-dependents
  • Loading branch information
Seldaek committed Mar 21, 2024
1 parent 2027d49 commit 54870a7
Showing 1 changed file with 35 additions and 1 deletion.
36 changes: 35 additions & 1 deletion tests/Composer/Test/Command/ShowCommandTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -299,23 +299,57 @@ public function testOutdatedFiltersAccordingToPlatformReqsWithoutWarningForHighe
vendor/package 1.1.0 <highlight>! 1.2.0</highlight>", trim($appTester->getDisplay(true)));
}

public function testShowDirectWithNameOnlyShowsDirectDependents(): void
public function testShowDirectWithNameDoesNotShowTransientDependencies(): void
{
self::expectException(InvalidArgumentException::class);
self::expectExceptionMessage('Package "vendor/package" is installed but not a direct dependent of the root package.');

$this->initTempComposer([
'repositories' => [],
'require' => [
'direct/dependent' => '*',
],
]);

$this->createInstalledJson([
$direct = self::getPackage('direct/dependent', '1.0.0'),
self::getPackage('vendor/package', '1.0.0'),
]);

$this->configureLinks($direct, ['require' => ['vendor/package' => '*']]);

$appTester = $this->getApplicationTester();
$appTester->run(['command' => 'show', '--direct' => true, 'package' => 'vendor/package']);
}

public function testShowDirectWithNameOnlyShowsDirectDependents(): void
{
$this->initTempComposer([
'repositories' => [],
'require' => [
'direct/dependent' => '*',
],
'require-dev' => [
'direct/dependent2' => '*',
],
]);

$this->createInstalledJson([
self::getPackage('direct/dependent', '1.0.0'),
self::getPackage('direct/dependent2', '1.0.0'),
]);

$appTester = $this->getApplicationTester();
$appTester->run(['command' => 'show', '--direct' => true, 'package' => 'direct/dependent']);
$appTester->assertCommandIsSuccessful();
self::assertStringContainsString('name : direct/dependent' . "\n", $appTester->getDisplay(true));

$appTester = $this->getApplicationTester();
$appTester->run(['command' => 'show', '--direct' => true, 'package' => 'direct/dependent2']);
$appTester->assertCommandIsSuccessful();
self::assertStringContainsString('name : direct/dependent2' . "\n", $appTester->getDisplay(true));
}

public function testShowPlatformOnlyShowsPlatformPackages(): void
{
$this->initTempComposer([
Expand Down

0 comments on commit 54870a7

Please sign in to comment.