From 99cc4e0146eeba9cceb4494b9a896d00abd5dc17 Mon Sep 17 00:00:00 2001 From: nuno maduro Date: Sat, 2 May 2026 19:33:09 +0100 Subject: [PATCH] wip --- src/Plugins/Tia.php | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/Plugins/Tia.php b/src/Plugins/Tia.php index 570dfadb..d919f10f 100644 --- a/src/Plugins/Tia.php +++ b/src/Plugins/Tia.php @@ -194,12 +194,16 @@ final class Tia implements AddsOutput, HandlesArguments, Terminable */ public static function isEnabledForRun(array $arguments): bool { + if (self::argumentPresent(self::NO_OPTION, $arguments)) { + return false; + } + $watchPatterns = Container::getInstance()->get(WatchPatterns::class); assert($watchPatterns instanceof WatchPatterns); self::applyWatchPatternMarks($arguments, $watchPatterns); - if (in_array(self::OPTION, $arguments, true) || self::envFlagEnabled(self::ENV_TIA)) { + if (self::argumentPresent(self::OPTION, $arguments) || self::envFlagEnabled(self::ENV_TIA)) { return true; } @@ -207,7 +211,7 @@ final class Tia implements AddsOutput, HandlesArguments, Terminable return false; } - return ! ($watchPatterns->isLocally() && in_array('--ci', $arguments, true)); + return ! ($watchPatterns->isLocally() && self::argumentPresent('--ci', $arguments)); } /** @@ -215,16 +219,37 @@ final class Tia implements AddsOutput, HandlesArguments, Terminable */ private static function applyWatchPatternMarks(array $arguments, WatchPatterns $watchPatterns): void { - if (in_array(self::LOCALLY_OPTION, $arguments, true) || self::envFlagEnabled(self::ENV_LOCALLY)) { + if (self::argumentPresent(self::LOCALLY_OPTION, $arguments) || self::envFlagEnabled(self::ENV_LOCALLY)) { $watchPatterns->markEnabled(); $watchPatterns->markLocally(); } - if (in_array(self::BASELINED_OPTION, $arguments, true) || self::envFlagEnabled(self::ENV_BASELINED)) { + if (self::argumentPresent(self::BASELINED_OPTION, $arguments) || self::envFlagEnabled(self::ENV_BASELINED)) { $watchPatterns->markBaselined(); } } + /** + * Mirrors {@see \Pest\Plugins\Concerns\HandleArguments::hasArgument()} for + * use from static contexts — matches both `--flag` and `--flag=value`. + * + * @param array $arguments + */ + private static function argumentPresent(string $argument, array $arguments): bool + { + foreach ($arguments as $arg) { + if ($arg === $argument) { + return true; + } + + if (str_starts_with($arg, "$argument=")) { + return true; + } + } + + return false; + } + private static function envFlagEnabled(string $name): bool { return filter_var(getenv($name), FILTER_VALIDATE_BOOL);