Fixes queue not being processed for scheduled newsletters

Sets newsletter status to "sending" when queue was processed
Uses defined constants where appropriate
This commit is contained in:
Vlad
2017-06-15 18:57:27 -04:00
parent 6653327f7f
commit 2d3aae9dd0
2 changed files with 46 additions and 7 deletions

View File

@@ -367,6 +367,9 @@ class SchedulerTest extends MailPoetTest {
expect($updated_queue_subscribers['to_process'])->equals(array($subscriber->id));
// set queue's status to null
expect($updated_queue->status)->null();
// set newsletter's status to sending
$updated_newsletter = Newsletter::findOne($newsletter->id);
expect($updated_newsletter->status)->equals(Newsletter::STATUS_SENDING);
}
function testItFailsToProcessPostNotificationNewsletterWhenSegmentsDontExist() {
@@ -422,6 +425,10 @@ class SchedulerTest extends MailPoetTest {
$updated_queue_subscribers = $updated_queue->getSubscribers();
expect($updated_queue_subscribers['to_process'])->equals(array($subscriber->id));
expect($updated_queue->newsletter_id)->equals($notification_history->id);
// set notification history's status to sending
$updated_notification_history = Newsletter::where('parent_id', $newsletter->id)
->findOne();
expect($updated_notification_history->status)->equals(Newsletter::STATUS_SENDING);
}
function testItFailsToProcessWhenScheduledQueuesNotFound() {
@@ -513,6 +520,35 @@ class SchedulerTest extends MailPoetTest {
'processScheduledStandardNewsletter' => Stub::never()
), $this);
// scheduled job is not processed
$scheduler->timer = microtime(true);
$scheduler->process();
}
function testItProcessesScheduledJobsWhenNewsletterIsActive() {
$newsletter = $this->_createNewsletter(Newsletter::TYPE_STANDARD, Newsletter::STATUS_ACTIVE);
$queue = $this->_createQueue($newsletter->id);
$queue->scheduled_at = Carbon::createFromTimestamp(current_time('timestamp'));
$queue->save();
$scheduler = Stub::make(new Scheduler(), array(
'processScheduledStandardNewsletter' => Stub::once()
), $this);
// scheduled job is processed
$scheduler->timer = microtime(true);
$scheduler->process();
}
function testItProcessesScheduledJobsWhenNewsletterIsScheduled() {
$newsletter = $this->_createNewsletter(Newsletter::TYPE_STANDARD, Newsletter::STATUS_SCHEDULED);
$queue = $this->_createQueue($newsletter->id);
$queue->scheduled_at = Carbon::createFromTimestamp(current_time('timestamp'));
$queue->save();
$scheduler = Stub::make(new Scheduler(), array(
'processScheduledStandardNewsletter' => Stub::once()
), $this);
// scheduled job is processed
$scheduler->timer = microtime(true);
$scheduler->process();
}
@@ -535,7 +571,6 @@ class SchedulerTest extends MailPoetTest {
return $subscriber_segment;
}
function _createSegment() {
$segment = Segment::create();
$segment->name = 'test';