Add feature flag for WooCommerce orders sync job

[MAILPOET-2165]
This commit is contained in:
Jan Jakeš
2019-07-03 14:46:03 +02:00
committed by M. Shull
parent f9e6cf43f6
commit 0ea8715ef0
3 changed files with 24 additions and 3 deletions

View File

@ -2,6 +2,7 @@
namespace MailPoet\Cron\Workers;
use Carbon\Carbon;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\StatisticsClicks;
use MailPoet\Statistics\Track\WooCommercePurchases;
@ -20,13 +21,25 @@ class WooCommerceOrders extends SimpleWorker {
/** @var WooCommercePurchases */
private $woocommerce_purchases;
function __construct(WCHelper $woocommerce_helper, WooCommercePurchases $woocommerce_purchases, $timer = false) {
/** @var FeaturesController */
private $features_controller;
function __construct(
WCHelper $woocommerce_helper,
WooCommercePurchases $woocommerce_purchases,
FeaturesController $features_controller,
$timer = false
) {
$this->woocommerce_helper = $woocommerce_helper;
$this->woocommerce_purchases = $woocommerce_purchases;
$this->features_controller = $features_controller;
parent::__construct($timer);
}
function checkProcessingRequirements() {
if (!$this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) {
return false;
}
return $this->woocommerce_helper->isWooCommerceActive() && empty(self::getCompletedTasks()); // run only once
}

View File

@ -153,6 +153,6 @@ class WorkersFactory {
/** @return WooCommerceOrders */
function createWooCommerceOrdersWorker($timer) {
return new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, $timer);
return new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, $this->features_controller, $timer);
}
}

View File

@ -4,6 +4,8 @@ namespace MailPoet\Test\Cron\Workers;
use DateTime;
use MailPoet\Cron\Workers\WooCommerceOrders;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\FeatureFlag;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\StatisticsClicks;
use MailPoet\Statistics\Track\WooCommercePurchases;
@ -23,7 +25,12 @@ class WooCommerceOrdersTest extends \MailPoetTest {
$this->cleanup();
$this->woocommerce_helper = $this->createMock(WooCommerceHelper::class);
$this->woocommerce_purchases = $this->createMock(WooCommercePurchases::class);
$this->worker = new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, microtime(true));
FeatureFlag::createOrUpdate([
'name' => FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES,
'value' => true,
]);
$this->worker = new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, new FeaturesController(), microtime(true));
}
function testItDoesNotRunIfWooCommerceIsDisabled() {
@ -139,6 +146,7 @@ class WooCommerceOrdersTest extends \MailPoetTest {
}
private function cleanup() {
\ORM::raw_execute('TRUNCATE ' . FeatureFlag::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . StatisticsClicks::$_table);
}