From bb82f34c644588fcf2baf45925f9ea368fc4c4d3 Mon Sep 17 00:00:00 2001 From: COQUARD Cyrille Date: Fri, 10 Jan 2025 14:59:12 +0100 Subject: [PATCH] Added tests but they are failing --- ...ypedDynamicFunctionReturnTypeExtension.php | 2 +- ...DynamicFunctionReturnTypeExtensionTest.php | 43 +++++++++++++++++++ .../extension.neon | 2 + .../not-valid.php | 13 ++++++ .../valid.php | 6 +++ 5 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 tests/phpstan/tests/Rules/ApplyFiltersTypedDynamicFunctionReturnTypeExtensionTest.php create mode 100644 tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/extension.neon create mode 100644 tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/not-valid.php create mode 100644 tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/valid.php diff --git a/tests/phpstan/Rules/ApplyFiltersTypedDynamicFunctionReturnTypeExtension.php b/tests/phpstan/Rules/ApplyFiltersTypedDynamicFunctionReturnTypeExtension.php index b6d09feded..4ff3f23435 100644 --- a/tests/phpstan/Rules/ApplyFiltersTypedDynamicFunctionReturnTypeExtension.php +++ b/tests/phpstan/Rules/ApplyFiltersTypedDynamicFunctionReturnTypeExtension.php @@ -76,7 +76,7 @@ public function processNode(Node $node, Scope $scope): array 'Missing docblock for wpm_apply_filters_typed call.' )->identifier('docblock.missing')->build(); - return []; + return $this->errors; } $this->validateDocBlock($resolvedPhpDoc); diff --git a/tests/phpstan/tests/Rules/ApplyFiltersTypedDynamicFunctionReturnTypeExtensionTest.php b/tests/phpstan/tests/Rules/ApplyFiltersTypedDynamicFunctionReturnTypeExtensionTest.php new file mode 100644 index 0000000000..82719fa26c --- /dev/null +++ b/tests/phpstan/tests/Rules/ApplyFiltersTypedDynamicFunctionReturnTypeExtensionTest.php @@ -0,0 +1,43 @@ +getContainer()->getByType(FileTypeMapper::class), $this->getContainer()->getByType(RuleLevelHelper::class)); + } + + public function testShouldRaiseError() { + $this->analyse([__DIR__ . '/../data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/not-valid.php'], [ + [ + 'Missing docblock for wpm_apply_filters_typed call.', + 3, + ], + [ + 'Expected 2 @param tags, found 0.', + 8, + ], + [ + 'Expected 2 @param tags, found 1.', + 13, + ], + ]); + } + + public function testShouldNotRaiseError() { + $this->analyse([__DIR__ . '/../data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/valid.php'], []); + } + + public static function getAdditionalConfigFiles(): array + { + // path to your project's phpstan.neon, or extension.neon in case of custom extension packages + // this is only necessary if your custom rule relies on some extra configuration and other extensions + return [__DIR__ . '/../data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/extension.neon']; + } +} diff --git a/tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/extension.neon b/tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/extension.neon new file mode 100644 index 0000000000..383a8a393d --- /dev/null +++ b/tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/extension.neon @@ -0,0 +1,2 @@ +includes: + - ../../../../../vendor/szepeviktor/phpstan-wordpress/extension.neon diff --git a/tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/not-valid.php b/tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/not-valid.php new file mode 100644 index 0000000000..63e59508bf --- /dev/null +++ b/tests/phpstan/tests/data/ApplyFiltersTypedDynamicFunctionReturnTypeExtension/not-valid.php @@ -0,0 +1,13 @@ +