Merge pull request #1422 from mailpoet/tasks-pausing

Pause scheduled tasks for deactivated emails [MAILPOET-1442]
This commit is contained in:
Michelle Shull
2018-07-10 09:59:03 -04:00
committed by GitHub
3 changed files with 41 additions and 31 deletions

View File

@@ -875,36 +875,43 @@ class NewsletterTest extends \MailPoetTest {
expect($newsletter->getMeta())->equals($meta);
}
function testPausesTaskWhenPostNotificationIsDisabled() {
$newsletter = Newsletter::createOrUpdate(array(
'type' => Newsletter::TYPE_NOTIFICATION
));
$task = ScheduledTask::createOrUpdate(array('status' => ScheduledTask::STATUS_SCHEDULED));
SendingQueue::createOrUpdate(array(
'newsletter_id' => $newsletter->id(),
'task_id' => $task->id(),
));
$newsletter->setStatus(Newsletter::STATUS_DRAFT);
$task_found = ScheduledTask::findOne($task->id());
expect($task_found->status)->equals(ScheduledTask::STATUS_PAUSED);
function testPausesTaskWhenNewsletterWithActivationIsDisabled() {
$newsletters_with_activation = [Newsletter::TYPE_NOTIFICATION, Newsletter::TYPE_WELCOME, Newsletter::TYPE_AUTOMATIC];
foreach($newsletters_with_activation as $type) {
$newsletter = Newsletter::createOrUpdate(array(
'type' => $type
));
$task = ScheduledTask::createOrUpdate(array('status' => ScheduledTask::STATUS_SCHEDULED));
SendingQueue::createOrUpdate(array(
'newsletter_id' => $newsletter->id(),
'task_id' => $task->id(),
));
$newsletter->setStatus(Newsletter::STATUS_DRAFT);
$task_found = ScheduledTask::findOne($task->id());
expect($task_found->status)->equals(ScheduledTask::STATUS_PAUSED);
}
}
function testUnpausesTaskWhenPostNotificationIsEnabled() {
$newsletter = Newsletter::createOrUpdate(array(
'type' => Newsletter::TYPE_NOTIFICATION
));
$task = ScheduledTask::createOrUpdate(array(
'status' => ScheduledTask::STATUS_PAUSED,
'scheduled_at' => Carbon::createFromTimestamp(current_time('timestamp'))->addDays(10)->format('Y-m-d H:i:s'),
));
SendingQueue::createOrUpdate(array(
'newsletter_id' => $newsletter->id(),
'task_id' => $task->id(),
));
$newsletter->setStatus(Newsletter::STATUS_ACTIVE);
$task_found = ScheduledTask::findOne($task->id());
expect($task_found->status)->equals(ScheduledTask::STATUS_SCHEDULED);
function testUnpausesTaskWhenNewsletterWithActivationIsEnabled() {
$newsletters_with_activation = [Newsletter::TYPE_NOTIFICATION, Newsletter::TYPE_WELCOME, Newsletter::TYPE_AUTOMATIC];
foreach($newsletters_with_activation as $type) {
$newsletter = Newsletter::createOrUpdate(array(
'type' => $type
));
$task = ScheduledTask::createOrUpdate(array(
'status' => ScheduledTask::STATUS_PAUSED,
'scheduled_at' => Carbon::createFromTimestamp(current_time('timestamp'))->addDays(10)->format('Y-m-d H:i:s'),
));
SendingQueue::createOrUpdate(array(
'newsletter_id' => $newsletter->id(),
'task_id' => $task->id(),
));
$newsletter->setStatus(Newsletter::STATUS_ACTIVE);
$task_found = ScheduledTask::findOne($task->id());
expect($task_found->status)->equals(ScheduledTask::STATUS_SCHEDULED);
}
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . NewsletterOption::$_table);
\ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);