Prevents processing scheduled sending queues for inactive newsletters
This commit is contained in:
@@ -31,6 +31,8 @@ class Scheduler {
|
|||||||
->findOne($queue->newsletter_id);
|
->findOne($queue->newsletter_id);
|
||||||
if(!$newsletter || $newsletter->deleted_at !== null) {
|
if(!$newsletter || $newsletter->deleted_at !== null) {
|
||||||
$queue->delete();
|
$queue->delete();
|
||||||
|
} elseif($newsletter->status !== 'active') {
|
||||||
|
continue;
|
||||||
} elseif($newsletter->type === 'welcome') {
|
} elseif($newsletter->type === 'welcome') {
|
||||||
$this->processWelcomeNewsletter($newsletter, $queue);
|
$this->processWelcomeNewsletter($newsletter, $queue);
|
||||||
} elseif($newsletter->type === 'notification') {
|
} elseif($newsletter->type === 'notification') {
|
||||||
|
@@ -503,6 +503,19 @@ class SchedulerTest extends MailPoetTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testItDoesNotProcessScheduledJobsWhenNewsletterIsNotActive() {
|
||||||
|
$newsletter = $this->_createNewsletter(Newsletter::TYPE_STANDARD, Newsletter::STATUS_DRAFT);
|
||||||
|
$queue = $this->_createQueue($newsletter->id);
|
||||||
|
$queue->scheduled_at = Carbon::createFromTimestamp(current_time('timestamp'));
|
||||||
|
$queue->save();
|
||||||
|
|
||||||
|
$scheduler = Stub::make(new Scheduler(), array(
|
||||||
|
'processScheduledStandardNewsletter' => Stub::never()
|
||||||
|
), $this);
|
||||||
|
// scheduled job is not processed
|
||||||
|
$scheduler->process();
|
||||||
|
}
|
||||||
|
|
||||||
function _createNewsletterSegment($newsletter_id, $segment_id) {
|
function _createNewsletterSegment($newsletter_id, $segment_id) {
|
||||||
$newsletter_segment = NewsletterSegment::create();
|
$newsletter_segment = NewsletterSegment::create();
|
||||||
$newsletter_segment->newsletter_id = $newsletter_id;
|
$newsletter_segment->newsletter_id = $newsletter_id;
|
||||||
@@ -544,9 +557,10 @@ class SchedulerTest extends MailPoetTest {
|
|||||||
return $subscriber;
|
return $subscriber;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _createNewsletter($type = Newsletter::TYPE_NOTIFICATION) {
|
function _createNewsletter($type = Newsletter::TYPE_NOTIFICATION, $status = 'active') {
|
||||||
$newsletter = Newsletter::create();
|
$newsletter = Newsletter::create();
|
||||||
$newsletter->type = $type;
|
$newsletter->type = $type;
|
||||||
|
$newsletter->status = $status;
|
||||||
$newsletter->save();
|
$newsletter->save();
|
||||||
expect($newsletter->getErrors())->false();
|
expect($newsletter->getErrors())->false();
|
||||||
return $newsletter;
|
return $newsletter;
|
||||||
|
Reference in New Issue
Block a user