mirror of
https://github.com/composer/composer
synced 2025-05-09 00:22:53 +00:00
Restore the ability to list the scripts in the 'run-script' command without providing a script (#10710)
This commit is contained in:
parent
eb36025d37
commit
58e135181d
3 changed files with 61 additions and 1 deletions
|
@ -12,13 +12,35 @@
|
|||
|
||||
namespace Composer\Test\Command;
|
||||
|
||||
use Composer\Command\RunScriptCommand;
|
||||
use Composer\Composer;
|
||||
use Composer\Config;
|
||||
use Composer\Console\Application;
|
||||
use Composer\Script\Event as ScriptEvent;
|
||||
use Composer\Test\TestCase;
|
||||
use Composer\Util\Filesystem;
|
||||
use Symfony\Component\Console\Tester\ApplicationTester;
|
||||
|
||||
class RunScriptCommandTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $home;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
$this->home = $this->getUniqueTmpDirectory();
|
||||
}
|
||||
|
||||
protected function tearDown(): void
|
||||
{
|
||||
parent::tearDown();
|
||||
|
||||
$fs = new Filesystem();
|
||||
$fs->removeDirectory($this->home);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getDevOptions
|
||||
* @param bool $dev
|
||||
|
@ -88,6 +110,35 @@ class RunScriptCommandTest extends TestCase
|
|||
$command->run($input, $output);
|
||||
}
|
||||
|
||||
public function testCanListScripts(): void
|
||||
{
|
||||
$manifest = [
|
||||
'scripts' => [
|
||||
'test' => '@php test',
|
||||
'fix-cs' => 'php-cs-fixer fix',
|
||||
],
|
||||
'scripts-descriptions' => [
|
||||
'fix-cs' => 'Run the codestyle fixer',
|
||||
],
|
||||
];
|
||||
|
||||
file_put_contents($this->home.'/composer.json', json_encode($manifest));
|
||||
|
||||
$application = new Application();
|
||||
$application->setAutoExit(false);
|
||||
$application->add(new RunScriptCommand());
|
||||
|
||||
$tester = new ApplicationTester($application);
|
||||
$tester->run(['command' => 'run-script', '--list' => true, '-d' => $this->home]);
|
||||
|
||||
$tester->assertCommandIsSuccessful();
|
||||
|
||||
$output = $tester->getDisplay();
|
||||
|
||||
$this->assertStringContainsString('Runs the test script as defined in composer.json.', $output, 'The default description for the test script should be printed');
|
||||
$this->assertStringContainsString('Run the codestyle fixer', $output, 'The custom description for the fix-cs script should be printed');
|
||||
}
|
||||
|
||||
/** @return bool[][] **/
|
||||
public function getDevOptions(): array
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue