Refactor MailPoet\Cron to use new settings

[MAILPOET-1757]
This commit is contained in:
Rostislav Wolny
2019-01-30 13:57:18 +01:00
parent 6e79705128
commit ff238bf69a
21 changed files with 174 additions and 86 deletions

View File

@ -5,26 +5,31 @@ use MailPoet\API\JSON\Endpoints\Cron;
use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Triggers\MailPoet;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
class MailPoetTest extends \MailPoetTest {
/** @var SettingsController */
private $settings;
function _before() {
parent::_before();
// cron trigger is by default set to 'WordPress'; when it runs and does not
// detect any queues to process, it deletes the daemon setting, so Supervisor that's
// called by the MailPoet cron trigger does not work. for that matter, we need to set
// the trigger setting to anything but 'WordPress'.
Setting::setValue('cron_trigger', array(
$this->settings = new SettingsController();
$this->settings->set('cron_trigger', array(
'method' => 'none'
));
}
function testItCanRun() {
expect(Setting::getValue(CronHelper::DAEMON_SETTING))->null();
expect($this->settings->get(CronHelper::DAEMON_SETTING))->null();
MailPoet::run();
expect(Setting::getValue(CronHelper::DAEMON_SETTING))->notEmpty();
expect($this->settings->get(CronHelper::DAEMON_SETTING))->notEmpty();
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
}
}
}