From 851786624ca50f43cca664a285947b1353421f2b Mon Sep 17 00:00:00 2001 From: Christian Sciberras <christian@sciberras.me> Date: Mon, 6 Jan 2025 12:40:35 +0100 Subject: [PATCH 1/2] Aliased types require phpstan annotations --- src/WebdriverClassicDriver.php | 20 ++++++++++---------- tests/Custom/CapabilityTest.php | 6 +++--- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/WebdriverClassicDriver.php b/src/WebdriverClassicDriver.php index 1f3e7a8..646cfb4 100644 --- a/src/WebdriverClassicDriver.php +++ b/src/WebdriverClassicDriver.php @@ -84,23 +84,25 @@ class WebdriverClassicDriver extends CoreDriver private DesiredCapabilities $desiredCapabilities; /** - * @var TTimeouts + * @phpstan-var TTimeouts */ private array $timeouts = []; private string $webDriverHost; /** - * @var TWebDriverInstantiator + * @phpstan-var TWebDriverInstantiator */ private $webDriverInstantiator; private ?string $initialWindowHandle = null; + // <editor-fold desc="Implementation"> + /** * @param string $browserName One of 'edge', 'firefox', 'chrome' or any one of {@see WebDriverBrowserType} constants. - * @param TCapabilities $desiredCapabilities - * @param TWebDriverInstantiator|null $webDriverInstantiator + * @phpstan-param TCapabilities $desiredCapabilities + * @phpstan-param TWebDriverInstantiator|null $webDriverInstantiator */ public function __construct( string $browserName = self::DEFAULT_BROWSER, @@ -114,8 +116,6 @@ public function __construct( $this->webDriverInstantiator = $webDriverInstantiator ?? [self::class, 'instantiateWebDriver']; } - // <editor-fold desc="Implementation"> - public function start(): void { try { @@ -350,7 +350,7 @@ public function getAttribute( /** * {@inheritdoc} - * @return TElementValue + * @phpstan-return TElementValue */ public function getValue( #[Language('XPath')] @@ -394,7 +394,7 @@ public function getValue( /** * {@inheritdoc} - * @param TElementValue $value + * @phpstan-param TElementValue $value */ public function setValue( #[Language('XPath')] @@ -759,7 +759,7 @@ public function getWebDriverSessionId(): ?string /** * Sets the timeouts to apply to the webdriver session * - * @param TTimeouts $timeouts The session timeout settings: Array of {script, implicit, page} => time in milliseconds + * @phpstan-param TTimeouts $timeouts The session timeout settings: Array of {script, implicit, page} => time in milliseconds * @throws DriverException * @api */ @@ -817,7 +817,7 @@ private function getNormalisedBrowserName(): string /** * Detect and assign appropriate browser capabilities * - * @param TCapabilities $desiredCapabilities + * @phpstan-param TCapabilities $desiredCapabilities * * @see https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities */ diff --git a/tests/Custom/CapabilityTest.php b/tests/Custom/CapabilityTest.php index ce129d0..36573d7 100644 --- a/tests/Custom/CapabilityTest.php +++ b/tests/Custom/CapabilityTest.php @@ -13,8 +13,8 @@ class CapabilityTest extends \PHPUnit\Framework\TestCase use WebDriverMockingTrait; /** - * @param TCapabilities $desiredCapabilities - * @param TCapabilities $expectedCapabilities + * @phpstan-param TCapabilities $desiredCapabilities + * @phpstan-param TCapabilities $expectedCapabilities * * @dataProvider capabilitiesDataProvider */ @@ -39,7 +39,7 @@ function ($host, $capabilities) use (&$actualCapabilities, $mockWebDriver) { } /** - * @return iterable<string, array{browserName: string, desiredCapabilities: TCapabilities, expectedCapabilities: TCapabilities}> + * @phpstan-return iterable<string, array{browserName: string, desiredCapabilities: TCapabilities, expectedCapabilities: TCapabilities}> */ public static function capabilitiesDataProvider(): iterable { From f4db0a925269ebc7d64eb77057d73077f465bda1 Mon Sep 17 00:00:00 2001 From: Christian Sciberras <christian@sciberras.me> Date: Mon, 6 Jan 2025 13:28:05 +0100 Subject: [PATCH 2/2] Tiny fix --- src/WebdriverClassicDriver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/WebdriverClassicDriver.php b/src/WebdriverClassicDriver.php index 646cfb4..6918157 100644 --- a/src/WebdriverClassicDriver.php +++ b/src/WebdriverClassicDriver.php @@ -97,8 +97,6 @@ class WebdriverClassicDriver extends CoreDriver private ?string $initialWindowHandle = null; - // <editor-fold desc="Implementation"> - /** * @param string $browserName One of 'edge', 'firefox', 'chrome' or any one of {@see WebDriverBrowserType} constants. * @phpstan-param TCapabilities $desiredCapabilities @@ -116,6 +114,8 @@ public function __construct( $this->webDriverInstantiator = $webDriverInstantiator ?? [self::class, 'instantiateWebDriver']; } + // <editor-fold desc="Implementation"> + public function start(): void { try {