Add tests
This commit is contained in:
parent
136e82ee01
commit
0fc81a27fc
|
@ -0,0 +1,81 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Class WC_Tests_Admin_Report_V2 file.
|
||||||
|
*
|
||||||
|
* @package WooCommerce\Tests\Admin\Reports
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests for the WC_Admin_Report class.
|
||||||
|
*/
|
||||||
|
class WC_Tests_Admin_Report_V2 extends WC_Unit_Test_Case {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load the necessary files, as they're not automatically loaded by WooCommerce.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function setUpBeforeClass() {
|
||||||
|
include_once WC_Unit_Tests_Bootstrap::instance()->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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue