Skip to content

Commit e0ff2b9

Browse files
authored
Additional tests and fix for WP_REST_Request (#190)
1 parent 8b6e534 commit e0ff2b9

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

functionMap.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@
7070
'rest_ensure_response' => ['($response is WP_Error ? WP_Error : WP_REST_Response)'],
7171
'WP_REST_Request' => [null, '@phpstan-template' => 'T of array', '@phpstan-implements' => 'ArrayAccess<key-of<T>, value-of<T>>'],
7272
'WP_REST_Request::offsetExists' => [null, 'offset' => 'key-of<T>'],
73-
'WP_REST_Request::offsetGet' => ['($offset is TOffset ? T[TOffset] : null)', '@phpstan-template' => 'TOffset of key-of<T>', 'offset' => 'TOffset'],
73+
'WP_REST_Request::offsetGet' => ['T[TOffset]|null', '@phpstan-template' => 'TOffset of key-of<T>', 'offset' => 'TOffset'],
7474
'WP_REST_Request::offsetSet' => ['void', '@phpstan-template' => 'TOffset of key-of<T>', 'offset' => 'TOffset', 'value' => 'T[TOffset]'],
7575
'WP_REST_Request::offsetUnset' => ['void', '@phpstan-template' => 'TOffset of key-of<T>', 'offset' => 'TOffset'],
76-
'WP_REST_Request::get_param' => ['($key is TOffset ? T[TOffset] : null)', '@phpstan-template' => 'TOffset of key-of<T>', 'key' => 'TOffset'],
76+
'WP_REST_Request::get_param' => ['T[TOffset]|null', '@phpstan-template' => 'TOffset of key-of<T>', 'key' => 'TOffset'],
7777
'WP_REST_Request::get_params' => ['T'],
7878
'WP_REST_Request::set_param' => ['void', '@phpstan-template' => 'TOffset of key-of<T>', 'key' => 'TOffset', 'value' => 'T[TOffset]'],
7979
'WP_REST_Request::has_param' => [null, 'key' => 'key-of<T>'],

tests/data/wp_rest_request.php

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,19 @@
1919

2020
assertType('bool', $request->has_param('maybeParam'));
2121

22+
/**
23+
* @var \WP_REST_Request<array<string, string>> $request
24+
*/
25+
$request = new WP_REST_Request();
26+
27+
assertType('string|null', $request->get_param('maybeParam'));
28+
29+
assertType('string|null', $request['maybeParam']);
30+
31+
assertType('array<string, string>', $request->get_params());
32+
33+
assertType('bool', $request->has_param('maybeParam'));
34+
2235
/**
2336
* @var \WP_REST_Request<array{
2437
* stringParam: string,
@@ -28,15 +41,15 @@
2841
*/
2942
$request = new WP_REST_Request();
3043

31-
assertType('string', $request->get_param('stringParam'));
32-
assertType('int', $request->get_param('intParam'));
33-
assertType('bool', $request->get_param('boolParam'));
34-
assertType('null', $request->get_param('nonExistentParam'));
44+
assertType('string|null', $request->get_param('stringParam'));
45+
assertType('int|null', $request->get_param('intParam'));
46+
assertType('bool|null', $request->get_param('boolParam'));
47+
assertType('bool|int|string|null', $request->get_param('nonExistentParam'));
3548

36-
assertType('string', $request['stringParam']);
37-
assertType('int', $request['intParam']);
38-
assertType('bool', $request['boolParam']);
39-
assertType('null', $request['nonExistentParam']);
49+
assertType('string|null', $request['stringParam']);
50+
assertType('int|null', $request['intParam']);
51+
assertType('bool|null', $request['boolParam']);
52+
assertType('bool|int|string|null', $request['nonExistentParam']);
4053

4154
assertType('array{stringParam: string, intParam: int, boolParam: bool}', $request->get_params());
4255

wordpress-stubs.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68946,7 +68946,7 @@ protected function get_parameter_order()
6894668946
* @return mixed|null Value if set, null otherwise.
6894768947
* @phpstan-template TOffset of key-of<T>
6894868948
* @phpstan-param TOffset $key
68949-
* @phpstan-return ($key is TOffset ? T[TOffset] : null)
68949+
* @phpstan-return T[TOffset]|null
6895068950
*/
6895168951
public function get_param($key)
6895268952
{
@@ -69261,7 +69261,7 @@ public function offsetExists($offset)
6926169261
* @return mixed|null Value if set, null otherwise.
6926269262
* @phpstan-template TOffset of key-of<T>
6926369263
* @phpstan-param TOffset $offset
69264-
* @phpstan-return ($offset is TOffset ? T[TOffset] : null)
69264+
* @phpstan-return T[TOffset]|null
6926569265
*/
6926669266
#[\ReturnTypeWillChange]
6926769267
public function offsetGet($offset)

0 commit comments

Comments
 (0)