Skip to content

Commit

Permalink
fix: checking existing argument with equal sign
Browse files Browse the repository at this point in the history
  • Loading branch information
krencl committed Jan 2, 2024
1 parent f272846 commit 31484bb
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 3 deletions.
12 changes: 11 additions & 1 deletion src/Plugins/Concerns/HandleArguments.php
Expand Up @@ -16,7 +16,17 @@ trait HandleArguments
*/
public function hasArgument(string $argument, array $arguments): bool
{
return in_array($argument, $arguments, true);
foreach ($arguments as $arg) {
if ($arg === $argument) {
return true;
}

if (str_starts_with($arg, "$argument=")) {
return true;
}
}

return false;
}

/**
Expand Down
10 changes: 9 additions & 1 deletion tests/.snapshots/success.txt
Expand Up @@ -1204,6 +1204,14 @@
PASS Tests\Unit\Overrides\ThrowableBuilder
✓ collision editor can be added to the stack trace

PASS Tests\Unit\Plugins\Concerns\HandleArguments
✓ method hasArgument with ('--long-argument', true)
✓ method hasArgument with ('-a', true)
✓ method hasArgument with ('--with-equal-sign', true)
✓ method hasArgument with ('someValue', true)
✓ method hasArgument with ('--a', false)
✓ method hasArgument with ('--undefined-argument', false)

PASS Tests\Unit\Plugins\Environment
✓ environment is set to CI when --ci option is used
✓ environment is set to Local when --ci option is not used
Expand Down Expand Up @@ -1356,4 +1364,4 @@
WARN Tests\Visual\Version
- visual snapshot of help command output

Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 19 skipped, 966 passed (2286 assertions)
Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 19 skipped, 972 passed (2292 assertions)
26 changes: 26 additions & 0 deletions tests/Unit/Plugins/Concerns/HandleArguments.php
@@ -0,0 +1,26 @@
<?php

use Pest\Plugins\Concerns\HandleArguments;

test('method hasArgument', function (string $argument, bool $expectedResult) {
$obj = new class
{
use HandleArguments;
};

$arguments = [
'--long-argument',
'someValue',
'-a',
'--with-equal-sign=1337',
];

expect($obj->hasArgument($argument, $arguments))->toBe($expectedResult);
})->with([
['--long-argument', true],
['-a', true],
['--with-equal-sign', true],
['someValue', true],
['--a', false],
['--undefined-argument', false],
]);
2 changes: 1 addition & 1 deletion tests/Visual/Parallel.php
Expand Up @@ -16,7 +16,7 @@

test('parallel', function () use ($run) {
expect($run('--exclude-group=integration'))
->toContain('Tests: 1 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 15 skipped, 953 passed (2267 assertions)')
->toContain('Tests: 1 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 15 skipped, 959 passed (2273 assertions)')
->toContain('Parallel: 3 processes');
})->skipOnWindows();

Expand Down

0 comments on commit 31484bb

Please sign in to comment.