1
0
Fork 0
mirror of https://github.com/composer/composer synced 2025-05-10 00:53:06 +00:00

Fix trailing whitespace in 'composer show -N' (#11536)

The name column was always padded to maximum width, even if no other columns were printed.

This makes it difficult to use the output e.g. in pipelines.

Fixed for all possible columns, and with tests for two cases (regular show and show outdated).
This commit is contained in:
David Zülke 2023-07-21 11:29:38 +02:00 committed by GitHub
parent 07f706e57d
commit 3e9c148b63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 7 deletions

View file

@ -404,4 +404,45 @@ available:
installed:
vendor/installed 2.0.0 description of installed package', $output);
}
public function testNameOnlyPrintsNoTrailingWhitespace(): void
{
$this->initTempComposer([
'repositories' => [
'packages' => [
'type' => 'package',
'package' => [
// CAUTION: package names matter - output is sorted, and we want shorter before longer ones
['name' => 'vendor/apackage', 'description' => 'generic description', 'version' => '1.0.0'],
['name' => 'vendor/apackage', 'description' => 'generic description', 'version' => '1.1.0'],
['name' => 'vendor/longpackagename', 'description' => 'generic description', 'version' => '1.0.0'],
['name' => 'vendor/longpackagename', 'description' => 'generic description', 'version' => '1.1.0'],
['name' => 'vendor/somepackage', 'description' => 'generic description', 'version' => '1.0.0'],
],
],
],
]);
$this->createInstalledJson([
self::getPackage('vendor/apackage', '1.0.0'),
self::getPackage('vendor/longpackagename', '1.0.0'),
self::getPackage('vendor/somepackage', '1.0.0'),
]);
$appTester = $this->getApplicationTester();
$appTester->run(['command' => 'show', '-N' => true]);
self::assertSame(
'vendor/apackage
vendor/longpackagename
vendor/somepackage', trim($appTester->getDisplay(true))); // trim() is fine here, but see CAUTION above
$appTester = $this->getApplicationTester();
$appTester->run(['command' => 'show', '--outdated' => true, '-N' => true]);
self::assertSame(
'Legend:
! patch or minor release available - update recommended
~ major release available - update possible
vendor/apackage
vendor/longpackagename', trim($appTester->getDisplay(true))); // trim() is fine here, but see CAUTION above
}
}