From 0fc81a27fcbc0a53dfb82cacb7e92f3a4d36803d Mon Sep 17 00:00:00 2001 From: Lourens Schep Date: Tue, 16 Feb 2021 15:29:03 -0400 Subject: [PATCH] Add tests --- .../class-wc-tests-admin-report-v2.php | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tests/legacy/unit-tests/admin/reports/class-wc-tests-admin-report-v2.php diff --git a/tests/legacy/unit-tests/admin/reports/class-wc-tests-admin-report-v2.php b/tests/legacy/unit-tests/admin/reports/class-wc-tests-admin-report-v2.php new file mode 100644 index 00000000000..44a904e5a05 --- /dev/null +++ b/tests/legacy/unit-tests/admin/reports/class-wc-tests-admin-report-v2.php @@ -0,0 +1,81 @@ +plugin_dir . '/includes/admin/reports/class-wc-admin-report-v2.php'; + } + + /** + * Set up for tests. + */ + public function setUp() { + parent::setUp(); + + // Mock http request to performance endpoint. + add_filter( 'rest_pre_dispatch', array( $this, 'mock_rest_responses' ), 10, 3 ); + } + + /** + * Tear down. + */ + public function tearDown() { + parent::tearDown(); + remove_filter( 'rest_pre_dispatch', array( $this, 'mock_rest_responses' ), 10 ); + } + + /** + * Test: get_order_report_data + */ + public function test_get_performance_data() { + $order = WC_Helper_Order::create_order(); + $order->set_status( 'completed' ); + $order->save(); + + $report = new WC_Admin_Report_V2(); + + $data = $report->get_performance_data(); + $this->assertEquals( $data->net_sales, 33.00 ); + } + + /** + * Helper method to mock rest_do_request method. + * + * @param false $response Request arguments. + * @param WP_REST_Server $rest_server rest server class. + * @param WP_REST_Request $request incoming request. + * + * @return WP_REST_Response|false mocked response or false to let WP perform a regular request. + */ + public function mock_rest_responses( $response, $rest_server, $request ) { + if ( '/wc-analytics/reports/performance-indicators' === $request->get_route() ) { + $response = new WP_REST_Response( + array( + 'status' => 200, + ) + ); + $response->set_data( + array( + array( + 'chart' => 'net_revenue', + 'value' => 33.0, + ), + ) + ); + } + + return $response; + } +}