diff --git a/mailpoet/tasks/phpstan/email-editor-phpstan.neon b/mailpoet/tasks/phpstan/email-editor-phpstan.neon index d63b7d2c42..993eef51e4 100644 --- a/mailpoet/tasks/phpstan/email-editor-phpstan.neon +++ b/mailpoet/tasks/phpstan/email-editor-phpstan.neon @@ -17,10 +17,6 @@ parameters: maximumNumberOfProcesses: 3 # Static analysis is running on Circle CI medium+ that has 3 CPUs ignoreErrors: - '#_before\(\) has no return type specified#' # skip integration test before errors - - '#Container::get\(\) is not referenced in a parameter.#' - - - message: '#Cannot call method initialize\(\) on mixed#' - path: ../../../packages/php/email-editor/tests/integration/* - message: '#has no return type specified.#' path: ../../../packages/php/email-editor/tests/integration/* @@ -30,15 +26,6 @@ parameters: - message: '#assertStringNotContainsString\(\) expects string#' path: ../../../packages/php/email-editor/tests/integration/* - - - message: '#settings_controller \(MailPoet\\EmailEditor\\Engine\\Settings_Controller\) does not accept mixed#' - path: ../../../packages/php/email-editor/tests/integration/* - - - message: '#Renderer\) does not accept mixed.#' - path: ../../../packages/php/email-editor/tests/integration/* - - - message: '#Access to an undefined property MailPoet\\EmailEditor\\.*Test::\$tester.#' - path: ../../../packages/php/email-editor/tests/integration/* reportUnmatchedIgnoredErrors: true dynamicConstantNames: - MAILPOET_PREMIUM_INITIALIZED diff --git a/packages/php/email-editor/src/class-container.php b/packages/php/email-editor/src/class-container.php index 31b7ceea30..444488156f 100644 --- a/packages/php/email-editor/src/class-container.php +++ b/packages/php/email-editor/src/class-container.php @@ -43,7 +43,7 @@ class Container { * Method for getting a registered service * * @template T - * @param string|class-string $name The name of the service. + * @param class-string $name The name of the service. * @return T * @throws \Exception If the service is not found. */ diff --git a/packages/php/email-editor/tests/integration/Engine/Email_Editor_Test.php b/packages/php/email-editor/tests/integration/Engine/Email_Editor_Test.php index 63cbef88e6..f5c9f3c5c9 100644 --- a/packages/php/email-editor/tests/integration/Engine/Email_Editor_Test.php +++ b/packages/php/email-editor/tests/integration/Engine/Email_Editor_Test.php @@ -31,7 +31,7 @@ class Email_Editor_Test extends \MailPoetTest { */ public function _before() { parent::_before(); - $this->email_editor = $this->di_container->get( Email_Editor::class ); // @phpstan-ignore-line + $this->email_editor = $this->di_container->get( Email_Editor::class ); $this->post_register_callback = function ( $post_types ) { $post_types[] = array( 'name' => 'custom_email_type', diff --git a/packages/php/email-editor/tests/integration/Engine/Patterns/Patterns_Test.php b/packages/php/email-editor/tests/integration/Engine/Patterns/Patterns_Test.php index 7da891ac18..47f563bc10 100644 --- a/packages/php/email-editor/tests/integration/Engine/Patterns/Patterns_Test.php +++ b/packages/php/email-editor/tests/integration/Engine/Patterns/Patterns_Test.php @@ -23,7 +23,7 @@ class Patterns_Test extends \MailPoetTest { */ public function _before() { parent::_before(); - $this->patterns = $this->di_container->get( Patterns::class ); // @phpstan-ignore-line + $this->patterns = $this->di_container->get( Patterns::class ); $this->cleanup_patterns(); } diff --git a/packages/php/email-editor/tests/integration/Engine/Renderer/ContentRenderer/Blocks_Registry_Test.php b/packages/php/email-editor/tests/integration/Engine/Renderer/ContentRenderer/Blocks_Registry_Test.php index a6d2b0d34a..981e64dc22 100644 --- a/packages/php/email-editor/tests/integration/Engine/Renderer/ContentRenderer/Blocks_Registry_Test.php +++ b/packages/php/email-editor/tests/integration/Engine/Renderer/ContentRenderer/Blocks_Registry_Test.php @@ -29,7 +29,7 @@ class Blocks_Registry_Test extends \MailPoetTest { */ public function _before() { parent::_before(); - $this->registry = $this->di_container->get( Blocks_Registry::class ); // @phpstan-ignore-line + $this->registry = $this->di_container->get( Blocks_Registry::class ); } /** diff --git a/packages/php/email-editor/tests/integration/Engine/Theme_Controller_Test.php b/packages/php/email-editor/tests/integration/Engine/Theme_Controller_Test.php index 1a3b948498..4b01d21669 100644 --- a/packages/php/email-editor/tests/integration/Engine/Theme_Controller_Test.php +++ b/packages/php/email-editor/tests/integration/Engine/Theme_Controller_Test.php @@ -24,7 +24,7 @@ class Theme_Controller_Test extends \MailPoetTest { */ public function _before() { parent::_before(); - $this->theme_controller = $this->di_container->get( Theme_Controller::class ); // @phpstan-ignore-line + $this->theme_controller = $this->di_container->get( Theme_Controller::class ); } /** diff --git a/packages/php/email-editor/tests/integration/Integrations/Core/Renderer/Renderer_Test.php b/packages/php/email-editor/tests/integration/Integrations/Core/Renderer/Renderer_Test.php index 621a530a4a..d99a9ab4f0 100644 --- a/packages/php/email-editor/tests/integration/Integrations/Core/Renderer/Renderer_Test.php +++ b/packages/php/email-editor/tests/integration/Integrations/Core/Renderer/Renderer_Test.php @@ -28,9 +28,9 @@ class Renderer_Test extends \MailPoetTest { */ public function _before() { parent::_before(); - $this->renderer = $this->di_container->get( Renderer::class ); // @phpstan-ignore-line - $this->di_container->get( Email_Editor::class )->initialize(); // @phpstan-ignore-line - $this->di_container->get( Initializer::class )->initialize(); // @phpstan-ignore-line + $this->renderer = $this->di_container->get( Renderer::class ); + $this->di_container->get( Email_Editor::class )->initialize(); + $this->di_container->get( Initializer::class )->initialize(); } /** diff --git a/packages/php/email-editor/tests/integration/_bootstrap.php b/packages/php/email-editor/tests/integration/_bootstrap.php index a31c718e1b..0a81e734f9 100644 --- a/packages/php/email-editor/tests/integration/_bootstrap.php +++ b/packages/php/email-editor/tests/integration/_bootstrap.php @@ -124,10 +124,11 @@ abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore /** * Get a service from the DI container. * - * @param string $id The service ID. - * @param array $overrides The properties to override. + * @template T + * @param class-string $id The service ID. + * @param array $overrides The properties to override. */ - public function getServiceWithOverrides( string $id, array $overrides ) { + public function getServiceWithOverrides( $id, array $overrides ) { $instance = $this->di_container->get( $id ); return Stub::copy( $instance, $overrides ); } diff --git a/packages/php/email-editor/tests/unit/Container_Test.php b/packages/php/email-editor/tests/unit/Container_Test.php index c3e52de5af..294ec54778 100644 --- a/packages/php/email-editor/tests/unit/Container_Test.php +++ b/packages/php/email-editor/tests/unit/Container_Test.php @@ -10,12 +10,16 @@ namespace MailPoet\EmailEditor; use Exception; use PHPUnit\Framework\TestCase; -use stdClass; + +class Simple_Service {} // phpcs:ignore + +class Singleton_Service {} // phpcs:ignore /** * Unit test for Container class. + * Ignoring Only one object structure is allowed in a file. */ -class Container_Test extends TestCase { +class Container_Test extends TestCase { // phpcs:ignore /** * Test if sets and gets service. */ @@ -23,15 +27,15 @@ class Container_Test extends TestCase { $container = new Container(); $container->set( - 'simple_service', + Simple_Service::class, function () { - return new stdClass(); + return new Simple_Service(); } ); - $service = $container->get( 'simple_service' ); + $service = $container->get( Simple_Service::class ); - $this->assertInstanceOf( stdClass::class, $service ); + $this->assertInstanceOf( Simple_Service::class, $service ); } /** @@ -41,15 +45,15 @@ class Container_Test extends TestCase { $container = new Container(); $container->set( - 'singleton_service', + Singleton_Service::class, function () { - return new stdClass(); + return new Singleton_Service(); } ); // Retrieve the service twice. - $service1 = $container->get( 'singleton_service' ); - $service2 = $container->get( 'singleton_service' ); + $service1 = $container->get( Singleton_Service::class ); + $service2 = $container->get( Singleton_Service::class ); // Check that both instances are the same. $this->assertSame( $service1, $service2 ); @@ -66,6 +70,6 @@ class Container_Test extends TestCase { $this->expectException( Exception::class ); $this->expectExceptionMessage( 'Service not found: non_existing_service' ); - $container->get( 'non_existing_service' ); + $container->get( 'non_existing_service' ); // @phpstan-ignore-line } }