Skip to content

Commit

Permalink
test: improve tests
Browse files Browse the repository at this point in the history
  • Loading branch information
leogermani committed Sep 17, 2024
1 parent d57560f commit da0a642
Showing 1 changed file with 39 additions and 34 deletions.
73 changes: 39 additions & 34 deletions tests/unit-tests/reader-activation-sync-woocommerce.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@
* Tests Reader Activation Sync WooCommerce.
*/
class Newspack_Test_RAS_Sync_WooCommerce extends WP_UnitTestCase {

/**
* The current order that will be returned in the filter
*
* @var ?WC_Order
*/
public static $current_order = false;

const USER_DATA = [
'user_login' => 'test_user',
'user_email' => 'test@example.com',
Expand All @@ -37,6 +45,32 @@ public function set_up() { // phpcs:ignore Squiz.Commenting.FunctionComment.Miss
// Reset the user.
wp_delete_user( self::$user_id );
self::$user_id = wp_insert_user( self::USER_DATA );

add_filter(
'newspack_reader_activation_get_current_product_order_for_sync',
[ __CLASS__, 'get_current_order' ]
);
}

/**
* Tear down the test.
*
* @return void
*/
public function tear_down() {
remove_filter(
'newspack_reader_activation_get_current_product_order_for_sync',
[ __CLASS__, 'get_current_order' ]
);
}

/**
* Get the current order for the test.
*
* @return ?WC_Order
*/
public static function get_current_order() {
return self::$current_order;
}

/**
Expand All @@ -57,13 +91,7 @@ public function test_payment_metadata_basic() {
],
];
$order = \wc_create_order( $order_data );

add_filter(
'newspack_reader_activation_get_current_product_order_for_sync',
function() use ( $order ) {
return $order;
}
);
self::$current_order = $order;

$payment_page_url = 'https://example.com/donate';
$contact_data = Sync\WooCommerce::get_contact_from_order( $order, $payment_page_url );
Expand Down Expand Up @@ -117,14 +145,7 @@ public function test_payment_metadata_utm() {
],
];
$order = \wc_create_order( $order_data );


add_filter(
'newspack_reader_activation_get_current_product_order_for_sync',
function() use ( $order ) {
return $order;
}
);
self::$current_order = $order;

$contact_data = Sync\WooCommerce::get_contact_from_order( $order );
$this->assertEquals( 'test_source', $contact_data['metadata']['payment_page_utm_source'] );
Expand All @@ -143,13 +164,7 @@ public function test_payment_metadata_with_failed_order() {
]
);


add_filter(
'newspack_reader_activation_get_current_product_order_for_sync',
function() use ( $order ) {
return $order;
}
);
self::$current_order = $order;

$contact_data = Sync\WooCommerce::get_contact_from_order( $order );
$this->assertEmpty( $contact_data['metadata']['last_payment_date'] );
Expand All @@ -167,12 +182,7 @@ public function test_payment_metadata_from_customer() {
];
$order = \wc_create_order( $order_data );

add_filter(
'newspack_reader_activation_get_current_product_order_for_sync',
function() use ( $order ) {
return $order;
}
);
self::$current_order = $order;

$contact_data = Sync\WooCommerce::get_contact_from_customer( self::$user_id );
$this->assertEquals( '$' . $order_data['total'], $contact_data['metadata']['last_payment_amount'] );
Expand All @@ -191,12 +201,7 @@ public function test_payment_metadata_from_customer_with_last_order_failed() {
];
$order = \wc_create_order( $completed_order_data );

add_filter(
'newspack_reader_activation_get_current_product_order_for_sync',
function() use ( $order ) {
return $order;
}
);
self::$current_order = $order;

// A more recent, but failed, order.
$failed_order_data = [
Expand Down

0 comments on commit da0a642

Please sign in to comment.