Skip to content

Commit 72ff388

Browse files
authored
Merge pull request #71 from wp-cli/dependabot/composer/wp-cli/wp-cli-tests-tw-5
2 parents ecdeb5e + 01f359b commit 72ff388

File tree

4 files changed

+35
-13
lines changed

4 files changed

+35
-13
lines changed

composer.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515
"wp-cli/wp-cli": "^2.12"
1616
},
1717
"require-dev": {
18-
"wp-cli/wp-cli-tests": "^4"
18+
"wp-cli/wp-cli-tests": "^5"
1919
},
2020
"config": {
2121
"process-timeout": 7200,
2222
"sort-packages": true,
2323
"allow-plugins": {
2424
"dealerdirect/phpcodesniffer-composer-installer": true,
25-
"johnpbloch/wordpress-core-installer": true
25+
"johnpbloch/wordpress-core-installer": true,
26+
"phpstan/extension-installer": true
2627
},
2728
"lock": false
2829
},
@@ -59,12 +60,14 @@
5960
"behat-rerun": "rerun-behat-tests",
6061
"lint": "run-linter-tests",
6162
"phpcs": "run-phpcs-tests",
63+
"phpstan": "run-phpstan-tests",
6264
"phpunit": "run-php-unit-tests",
6365
"phpcbf": "run-phpcbf-cleanup",
6466
"prepare-tests": "install-package-tests",
6567
"test": [
6668
"@lint",
6769
"@phpcs",
70+
"@phpstan",
6871
"@phpunit",
6972
"@behat"
7073
]

phpstan.neon.dist

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
parameters:
2+
level: 9
3+
paths:
4+
- src
5+
- role-command.php
6+
scanDirectories:
7+
- vendor/wp-cli/wp-cli/php
8+
scanFiles:
9+
- vendor/php-stubs/wordpress-stubs/wordpress-stubs.php
10+
treatPhpDocTypesAsCertain: false
11+
ignoreErrors:
12+
- identifier: missingType.parameter
13+
- identifier: missingType.return

src/Capabilities_Command.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class Capabilities_Command extends WP_CLI_Command {
2626
/**
2727
* List of available fields.
2828
*
29-
* @var array
29+
* @var array<string>
3030
*/
3131
private $fields = [ 'name' ];
3232

src/Role_Command.php

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ class Role_Command extends WP_CLI_Command {
4242
/**
4343
* List of available fields.
4444
*
45-
* @var array
45+
* @var array<string>
4646
*/
4747
private $fields = [ 'name', 'role' ];
4848

4949
/**
5050
* Default roles as provided by WordPress Core.
5151
*
52-
* @var array
52+
* @var array<string>
5353
*/
5454
private $roles = [ 'administrator', 'editor', 'author', 'contributor', 'subscriber' ];
5555

@@ -347,13 +347,17 @@ public function reset( $args, $assoc_args ) {
347347
remove_role( $role );
348348
}
349349

350+
/**
351+
* @var array<string|\WP_Role> $preserve
352+
*/
353+
350354
// Put back all default roles and capabilities.
351355
populate_roles();
352356

353357
// Restore the preserved roles.
354358
foreach ( $preserve as $k => $roleobj ) {
355359
// Re-remove after populating.
356-
if ( is_a( $roleobj, 'WP_Role' ) ) {
360+
if ( $roleobj instanceof \WP_Role ) {
357361
remove_role( $roleobj->name );
358362
add_role( $roleobj->name, ucwords( $roleobj->name ), $roleobj->capabilities );
359363
} else {
@@ -373,13 +377,15 @@ public function reset( $args, $assoc_args ) {
373377
if ( $after[ $role_key ] != $before[ $role_key ] ) {
374378
++$num_reset;
375379
$before_capabilities = isset( $before[ $role_key ] ) ? $before[ $role_key ]->capabilities : [];
376-
$restored_cap = array_diff_key( $after[ $role_key ]->capabilities, $before_capabilities );
377-
$removed_cap = array_diff_key( $before_capabilities, $after[ $role_key ]->capabilities );
378-
$restored_cap_count = count( $restored_cap );
379-
$removed_cap_count = count( $removed_cap );
380-
$restored_text = ( 1 === $restored_cap_count ) ? '%d capability' : '%d capabilities';
381-
$removed_text = ( 1 === $removed_cap_count ) ? '%d capability' : '%d capabilities';
382-
$message = "Restored {$restored_text} to and removed {$removed_text} from '%s' role.";
380+
// @phpstan-ignore property.nonObject
381+
$restored_cap = array_diff_key( $after[ $role_key ]->capabilities, $before_capabilities );
382+
// @phpstan-ignore property.nonObject
383+
$removed_cap = array_diff_key( $before_capabilities, $after[ $role_key ]->capabilities );
384+
$restored_cap_count = count( $restored_cap );
385+
$removed_cap_count = count( $removed_cap );
386+
$restored_text = ( 1 === $restored_cap_count ) ? '%d capability' : '%d capabilities';
387+
$removed_text = ( 1 === $removed_cap_count ) ? '%d capability' : '%d capabilities';
388+
$message = "Restored {$restored_text} to and removed {$removed_text} from '%s' role.";
383389
WP_CLI::log( sprintf( $message, $restored_cap_count, $removed_cap_count, $role_key ) );
384390
} else {
385391
WP_CLI::log( "No changes necessary for '{$role_key}' role." );

0 commit comments

Comments
 (0)