From 2ec205651ae1f65f016919fc8035f25ae8656acc Mon Sep 17 00:00:00 2001 From: Nilambar Sharma Date: Fri, 8 Mar 2024 11:29:33 +0545 Subject: [PATCH] Fix format in core check update command --- features/core-check-update.feature | 22 ++++++++++++++++++++++ src/Core_Command.php | 6 ++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/features/core-check-update.feature b/features/core-check-update.feature index 3eda2d73..c9d52e3b 100644 --- a/features/core-check-update.feature +++ b/features/core-check-update.feature @@ -42,3 +42,25 @@ Feature: Check for more recent versions """ 1 """ + + Scenario: Check output of check update in different formats (no updates available) + Given a WP install + And I run `wp eval 'set_site_transient( "update_core", false );'` + + When I run `wp core check-update` + Then STDOUT should be: + """ + Success: WordPress is at the latest version. + """ + + When I run `wp core check-update --format=json` + Then STDOUT should be: + """ + [] + """ + + When I run `wp core check-update --format=yaml` + Then STDOUT should be: + """ + --- + """ diff --git a/src/Core_Command.php b/src/Core_Command.php index 80139080..950f1293 100644 --- a/src/Core_Command.php +++ b/src/Core_Command.php @@ -77,16 +77,18 @@ class Core_Command extends WP_CLI_Command { * @subcommand check-update */ public function check_update( $_, $assoc_args ) { + $format = Utils\get_flag_value( $assoc_args, 'format', 'table' ); $updates = $this->get_updates( $assoc_args ); - if ( $updates ) { + + if ( $updates || 'table' !== $format ) { $updates = array_reverse( $updates ); $formatter = new Formatter( $assoc_args, [ 'version', 'update_type', 'package_url' ] ); $formatter->display_items( $updates ); - } elseif ( empty( $assoc_args['format'] ) || 'table' === $assoc_args['format'] ) { + } else { WP_CLI::success( 'WordPress is at the latest version.' ); } }