diff --git a/.github/workflows/continous-integration.yml b/.github/workflows/continous-integration.yml index a2497e68..8583d248 100644 --- a/.github/workflows/continous-integration.yml +++ b/.github/workflows/continous-integration.yml @@ -248,7 +248,7 @@ jobs: - name: Install dependencies run: | - composer global require phpunit/phpcov:^8 php-coveralls/php-coveralls + composer global require phpunit/phpcov:^9 php-coveralls/php-coveralls - name: Download coverage artifacts uses: actions/download-artifact@v4 diff --git a/includes/data/connection/class-order-connection-resolver.php b/includes/data/connection/class-order-connection-resolver.php index 71633667..47b9063a 100644 --- a/includes/data/connection/class-order-connection-resolver.php +++ b/includes/data/connection/class-order-connection-resolver.php @@ -283,11 +283,8 @@ class Order_Connection_Resolver extends AbstractConnectionResolver { } if ( ! empty( $where_args['statuses'] ) ) { - if ( 1 === count( $where_args ) ) { - $args['status'] = $where_args['statuses'][0]; - } else { - $args['status'] = $where_args['statuses']; - } + $single_status = 1 === count( $where_args['statuses'] ); + $args['status'] = $single_status ? $where_args['statuses'][0] : $where_args['statuses']; } if ( ! empty( $where_args['customerId'] ) ) { diff --git a/tests/wpunit/OrderConnectionFiltersTest.php b/tests/wpunit/OrderConnectionFiltersTest.php index ec450234..e9e1a500 100644 --- a/tests/wpunit/OrderConnectionFiltersTest.php +++ b/tests/wpunit/OrderConnectionFiltersTest.php @@ -120,6 +120,17 @@ class OrderConnectionFiltersTest extends \Tests\WPGraphQL\WooCommerce\TestCase\W ]; $this->assertQuerySuccessful( $response, $expected ); + + // Filter by multiple statuses as the only filter arg. + $variables = [ 'statuses' => [ 'PENDING', 'PROCESSING' ] ]; + $response = $this->graphql( compact( 'query', 'variables' ) ); + $expected = [ + $this->expectedField( 'orders.nodes.#.databaseId', $pending_id ), + $this->expectedField( 'orders.nodes.#.databaseId', $processing_id ), + $this->not()->expectedField( 'orders.nodes.#.databaseId', $completed_id ), + ]; + + $this->assertQuerySuccessful( $response, $expected ); } /**