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 86a96dd commit f004591
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 @@ -1212,6 +1212,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 @@ -1364,4 +1372,4 @@
WARN Tests\Visual\Version
- visual snapshot of help command output

Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 19 skipped, 970 passed (2296 assertions)
Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 19 skipped, 976 passed (2302 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, 957 passed (2277 assertions)')
->toContain('Tests: 1 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 15 skipped, 963 passed (2283 assertions)')
->toContain('Parallel: 3 processes');
})->skipOnWindows();

Expand Down

0 comments on commit f004591

Please sign in to comment.