1
0
Fork 0

Update tests

pull/11842/head
Jordi Boggiano 2024-02-07 22:37:22 +01:00
parent 754f2868fb
commit df8f9f05a3
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
2 changed files with 40 additions and 23 deletions

View File

@ -228,7 +228,7 @@ class BaseDependencyCommandTest extends TestCase
*
* @param array<string, string|bool> $parameters
*/
public function testWhyCommandOutputs(array $parameters, string $expectedOutput): void
public function testWhyCommandOutputs(array $parameters, string $expectedOutput, int $expectedStatusCode): void
{
$packageToBeInspected = $parameters['package'];
$renderAsTree = $parameters['--tree'] ?? false;
@ -294,9 +294,9 @@ class BaseDependencyCommandTest extends TestCase
'--locked' => true
]);
$appTester->assertCommandIsSuccessful();
self::assertSame($expectedStatusCode, $appTester->getStatusCode());
$this->assertEquals(trim($expectedOutput), trim($appTester->getDisplay(true)));
$this->assertEquals(trim($expectedOutput), $this->trimLines($appTester->getDisplay(true)));
}
/**
@ -306,41 +306,46 @@ class BaseDependencyCommandTest extends TestCase
{
yield 'there is no installed package depending on the package' => [
['package' => 'vendor1/package1'],
'There is no installed package depending on "vendor1/package1"'
'There is no installed package depending on "vendor1/package1"',
1
];
yield 'a nested package dependency' => [
['package' => 'vendor1/package3'],
<<<OUTPUT
__root__ - requires vendor1/package3 (2.3.0)
__root__ - requires vendor1/package3 (2.3.0)
vendor1/package2 2.3.0 requires vendor1/package3 (^1)
OUTPUT
OUTPUT,
0
];
yield 'a nested package dependency (tree mode)' => [
['package' => 'vendor1/package3', '--tree' => true],
<<<OUTPUT
vendor1/package3 2.1.0
vendor1/package3 2.1.0
|--__root__ (requires vendor1/package3 2.3.0)
`--vendor1/package2 2.3.0 (requires vendor1/package3 ^1)
|--__root__ (requires vendor1/package2 1.3.0)
`--vendor1/package1 1.3.0 (requires vendor1/package2 ^2)
OUTPUT
OUTPUT,
0
];
yield 'a nested package dependency (recursive mode)' => [
['package' => 'vendor1/package3', '--recursive' => true],
<<<OUTPUT
__root__ - requires vendor1/package2 (1.3.0)
vendor1/package1 1.3.0 requires vendor1/package2 (^2)
__root__ - requires vendor1/package3 (2.3.0)
__root__ - requires vendor1/package2 (1.3.0)
vendor1/package1 1.3.0 requires vendor1/package2 (^2)
__root__ - requires vendor1/package3 (2.3.0)
vendor1/package2 2.3.0 requires vendor1/package3 (^1)
OUTPUT
OUTPUT,
0
];
yield 'a simple package dev dependency' => [
['package' => 'vendor2/package1'],
'__root__ - requires (for development) vendor2/package1 (2.*)'
'__root__ - requires (for development) vendor2/package1 (2.*)',
0
];
}
@ -354,7 +359,7 @@ OUTPUT
*
* @param array<string, string> $parameters
*/
public function testWhyNotCommandOutputs(array $parameters, string $expectedOutput): void
public function testWhyNotCommandOutputs(array $parameters, string $expectedOutput, int $expectedStatusCode): void
{
$packageToBeInspected = $parameters['package'];
$packageVersionToBeInspected = $parameters['version'];
@ -393,7 +398,7 @@ OUTPUT
'1.4.*'
)
]);
$secondDevNestedRequiredPackage = self::getPackage('vendor2/package3', '1.4.0');
$secondDevNestedRequiredPackage = self::getPackage('vendor2/package3', '1.4.0');
$this->createComposerLock(
[$someRequiredPackage],
@ -411,8 +416,8 @@ OUTPUT
'version' => $packageVersionToBeInspected
]);
$appTester->assertCommandIsSuccessful();
$this->assertSame(trim($expectedOutput), trim($appTester->getDisplay(true)));
self::assertSame($expectedStatusCode, $appTester->getStatusCode());
$this->assertSame(trim($expectedOutput), $this->trimLines($appTester->getDisplay(true)));
}
/**
@ -424,9 +429,10 @@ OUTPUT
['package' => 'vendor1/package1', 'version' => '3.*'],
<<<OUTPUT
Package "vendor1/package1" could not be found with constraint "3.*", results below will most likely be incomplete.
__root__ - requires vendor1/package1 (1.*)
__root__ - requires vendor1/package1 (1.*)
Not finding what you were looking for? Try calling `composer require "vendor1/package1:3.*" --dry-run` to get another view on the problem.
OUTPUT
OUTPUT,
1
];
yield 'it could not found the package and there is no installed package with a specific version' => [
@ -435,7 +441,8 @@ OUTPUT
Package "vendor1/package1" could not be found with constraint "^1.4", results below will most likely be incomplete.
There is no installed package depending on "vendor1/package1" in versions not matching ^1.4
Not finding what you were looking for? Try calling `composer require "vendor1/package1:^1.4" --dry-run` to get another view on the problem.
OUTPUT
OUTPUT,
0
];
yield 'there is no installed package depending on the package in versions not matching a specific version' => [
@ -443,15 +450,17 @@ OUTPUT
<<<OUTPUT
There is no installed package depending on "vendor1/package1" in versions not matching ^1.3
Not finding what you were looking for? Try calling `composer require "vendor1/package1:^1.3" --dry-run` to get another view on the problem.
OUTPUT
OUTPUT,
0
];
yield 'an installed package requires an incompatible version of the inspected package' => [
['package' => 'vendor2/package3', 'version' => '1.5.0'],
<<<OUTPUT
vendor2/package2 1.0.0 requires vendor2/package3 (1.4.*)
vendor2/package2 1.0.0 requires vendor2/package3 (1.4.*)
Not finding what you were looking for? Try calling `composer update "vendor2/package3:1.5.0" --dry-run` to get another view on the problem.
OUTPUT
OUTPUT,
1
];
}
}

View File

@ -210,6 +210,14 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
return new ApplicationTester($application);
}
/**
* Trims the entire string but also the trailing spaces off of every line
*/
protected function trimLines(string $str): string
{
return trim(Preg::replace('{^(.*?) *$}m', '$1', $str));
}
protected static function getVersionParser(): VersionParser
{
if (!self::$parser) {