From 8fb09532044eca1464682e4395ec63c7c021697f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomek=20Wytr=C4=99bowicz?= Date: Tue, 23 Jul 2024 21:44:23 +0200 Subject: [PATCH] Fix flaky orphaned refund test (#49741) Make sure the `date_paid` -> `date` -> order is deterministic. Fixes #49630 Co-authored-by: github-actions --- .../49741-dev-49630-fix-flaky-orphaned-refund-tests | 4 ++++ .../unit-tests/woocommerce-admin/api/reports-orders.php | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 plugins/woocommerce/changelog/49741-dev-49630-fix-flaky-orphaned-refund-tests diff --git a/plugins/woocommerce/changelog/49741-dev-49630-fix-flaky-orphaned-refund-tests b/plugins/woocommerce/changelog/49741-dev-49630-fix-flaky-orphaned-refund-tests new file mode 100644 index 00000000000..9eacc780237 --- /dev/null +++ b/plugins/woocommerce/changelog/49741-dev-49630-fix-flaky-orphaned-refund-tests @@ -0,0 +1,4 @@ +Significance: patch +Type: dev + +Fix flaky orphaned refund test \ No newline at end of file diff --git a/plugins/woocommerce/tests/legacy/unit-tests/woocommerce-admin/api/reports-orders.php b/plugins/woocommerce/tests/legacy/unit-tests/woocommerce-admin/api/reports-orders.php index 78a6e56acd9..38aeb49eed6 100644 --- a/plugins/woocommerce/tests/legacy/unit-tests/woocommerce-admin/api/reports-orders.php +++ b/plugins/woocommerce/tests/legacy/unit-tests/woocommerce-admin/api/reports-orders.php @@ -93,8 +93,6 @@ class WC_Admin_Tests_API_Reports_Orders extends WC_REST_Unit_Test_Case { } public function test_get_reports_with_orphaned_refund() { - $this->markTestSkipped( 'Flaky: see https://github.com/woocommerce/woocommerce/issues/49630' ); - wp_set_current_user( $this->user ); WC_Helper_Reports::reset_stats_dbs(); @@ -107,6 +105,8 @@ class WC_Admin_Tests_API_Reports_Orders extends WC_REST_Unit_Test_Case { $order = WC_Helper_Order::create_order( 1, $product ); $order->set_status( 'completed' ); $order->set_total( 100 ); // $25 x 4. + // Make sure the order is paid at least a minute ago to avoid issues with the same timestamp - undeterministic order. + $order->set_date_paid( $order->get_date_paid()->modify( '-1 minute' ) ); $order->save(); $refund = wc_create_refund( @@ -134,8 +134,8 @@ class WC_Admin_Tests_API_Reports_Orders extends WC_REST_Unit_Test_Case { $this->assertEquals( 200, $response->get_status() ); $this->assertEquals( 2, count( $reports ) ); - $order_report = $reports[0]; - $refund_report = $reports[1]; + $refund_report = $reports[0]; + $order_report = $reports[1]; $this->assertEquals( $order->get_id(), $order_report['order_id'] ); $this->assertEquals( $refund->get_id(), $refund_report['order_id'] );