mirror of
https://github.com/pestphp/pest.git
synced 2026-03-10 09:47:23 +01:00
feat: --bail
This commit is contained in:
30
src/Plugins/Bail.php
Normal file
30
src/Plugins/Bail.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Pest\Plugins;
|
||||
|
||||
use Pest\Contracts\Plugins\HandlesArguments;
|
||||
use Pest\Plugins\Concerns\HandleArguments;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class Bail implements HandlesArguments
|
||||
{
|
||||
use HandleArguments;
|
||||
|
||||
/**
|
||||
* Handles the arguments, adding the `--stop-on-defect` when the `--bail` argument is present.
|
||||
*/
|
||||
public function handleArguments(array $arguments): array
|
||||
{
|
||||
if ($this->hasArgument('--bail', $arguments)) {
|
||||
$arguments = $this->popArgument('--bail', $arguments);
|
||||
|
||||
$arguments = $this->pushArgument('--stop-on-defect', $arguments);
|
||||
}
|
||||
|
||||
return $arguments;
|
||||
}
|
||||
}
|
||||
@ -58,6 +58,8 @@ final class Help implements HandlesArguments
|
||||
'desc' => $description,
|
||||
] = $option;
|
||||
|
||||
assert(is_string($argument));
|
||||
|
||||
View::render('components.two-column-detail', [
|
||||
'left' => $this->colorizeOptions($argument),
|
||||
'right' => preg_replace(['/</', '/>/'], ['[', ']'], $description),
|
||||
@ -78,7 +80,7 @@ final class Help implements HandlesArguments
|
||||
*/
|
||||
private function colorizeOptions(string $argument): string
|
||||
{
|
||||
return preg_replace(
|
||||
return (string) preg_replace(
|
||||
['/</', '/>/', '/(-+[\w-]+)/'],
|
||||
['[', ']', '<fg=blue;options=bold>$1</>'],
|
||||
$argument
|
||||
@ -95,12 +97,12 @@ final class Help implements HandlesArguments
|
||||
/** @var array<string, array<int, array{arg: string, desc: string}>> $content */
|
||||
$content = $helpReflection->getConstant('HELP_TEXT');
|
||||
|
||||
$content['Configuration'] = [[
|
||||
$content['Configuration'] = [...[[
|
||||
'arg' => '--init',
|
||||
'desc' => 'Initialise a standard Pest configuration',
|
||||
], $content['Configuration']];
|
||||
]], ...$content['Configuration']];
|
||||
|
||||
$content['Selection'] = [
|
||||
$content['Selection'] = array_merge([
|
||||
[
|
||||
'arg' => '--todos',
|
||||
'desc' => 'Output to standard output the list of todos',
|
||||
@ -109,7 +111,7 @@ final class Help implements HandlesArguments
|
||||
'arg' => '--retry',
|
||||
'desc' => 'Run non-passing tests first and stop execution upon first error or failure',
|
||||
],
|
||||
] + $content['Selection'];
|
||||
], $content['Selection']);
|
||||
|
||||
$content['Reporting'] = [...$content['Reporting'], ...[
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user