Fix PHPStan class-string errors

MAILPOET-6318
This commit is contained in:
Oluwaseun Olorunsola
2024-11-26 12:08:44 +01:00
committed by Jan Lysý
parent cbfdba7bd2
commit 5ce9008f90
9 changed files with 27 additions and 35 deletions

View File

@@ -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

View File

@@ -43,7 +43,7 @@ class Container {
* Method for getting a registered service
*
* @template T
* @param string|class-string<T> $name The name of the service.
* @param class-string<T> $name The name of the service.
* @return T
* @throws \Exception If the service is not found.
*/

View File

@@ -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',

View File

@@ -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();
}

View File

@@ -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 );
}
/**

View File

@@ -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 );
}
/**

View File

@@ -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();
}
/**

View File

@@ -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.
* @template T
* @param class-string<T> $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 );
}

View File

@@ -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
}
}