diff --git a/rules-tests/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector/Fixture/skip_test_annotation_as_part_of_text.php.inc b/rules-tests/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector/Fixture/skip_test_annotation_as_part_of_text.php.inc new file mode 100644 index 00000000..40109988 --- /dev/null +++ b/rules-tests/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector/Fixture/skip_test_annotation_as_part_of_text.php.inc @@ -0,0 +1,17 @@ +assertSame(2, 1+1); + } +} + +?> diff --git a/rules/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector.php b/rules/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector.php index b01682ac..02b5d843 100644 --- a/rules/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector.php +++ b/rules/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector.php @@ -12,8 +12,10 @@ use Rector\Comments\NodeDocBlock\DocBlockUpdater; use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; use Rector\Rector\AbstractRector; +use Rector\Util\NewLineSplitter; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; +use function in_array; /** * @see \Rector\PHPUnit\Tests\CodeQuality\Rector\ClassMethod\ReplaceTestAnnotationWithPrefixedFunctionRector\ReplaceTestAnnotationWithPrefixedFunctionRectorTest @@ -84,7 +86,15 @@ public function refactor(Node $node): ?Node return null; } - if (! str_contains($docComment->getText(), '@test')) { + $hasAnnotation = false; + foreach(NewLineSplitter::split($docComment->getText()) as $row) { + if (in_array(trim($row), ['*@test', '* @test'])) { + $hasAnnotation = true; + break; + } + } + + if (! $hasAnnotation) { return null; }