Fix SendingTask creation from queue [MAILPOET-2488]

This commit is contained in:
wxa
2019-12-26 17:50:54 +03:00
committed by amine-mp
parent 6ed3915b1a
commit c493a43c35
4 changed files with 66 additions and 22 deletions

View File

@ -391,8 +391,12 @@ class NewslettersTest extends \MailPoetTest {
],
];
$newsletter = $this->endpoint->save($newsletter_data);
$sending_queue_1 = SendingTask::createFromQueue(SendingQueue::findOne($sending_queue_1->id));
$sending_queue_2 = SendingTask::createFromQueue(SendingQueue::findOne($sending_queue_2->id));
/** @var SendingQueue $sending_queue_1 */
$sending_queue_1 = SendingQueue::findOne($sending_queue_1->id);
$sending_queue_1 = SendingTask::createFromQueue($sending_queue_1);
/** @var SendingQueue $sending_queue_2 */
$sending_queue_2 = SendingQueue::findOne($sending_queue_2->id);
$sending_queue_2 = SendingTask::createFromQueue($sending_queue_2);
expect($sending_queue_1->scheduled_at)->notEquals($current_time);
expect($sending_queue_1->scheduled_at)->equals(
Scheduler::getNextRunDate($newsletter->data['schedule'])

View File

@ -112,7 +112,9 @@ class SchedulerTest extends \MailPoetTest {
expect($queue->scheduled_at)->null();
$newsletter->schedule = '0 5 * * *'; // set it to daily at 5
$scheduler->deleteQueueOrUpdateNextRunDate($queue, $newsletter);
$queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id));
/** @var SendingQueue $queue */
$queue = SendingQueue::findOne($queue->id);
$queue = SendingTask::createFromQueue($queue);
expect($queue->scheduled_at)->notNull();
}
@ -259,7 +261,9 @@ class SchedulerTest extends \MailPoetTest {
], $this);
expect($queue->status)->notNull();
expect($scheduler->processWelcomeNewsletter($newsletter, $queue))->true();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect($updated_queue->status)->null();
}
@ -276,7 +280,9 @@ class SchedulerTest extends \MailPoetTest {
expect($queue->status)->notNull();
expect($scheduler->processWelcomeNewsletter($newsletter, $queue))->true();
// update queue's status to null
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect($updated_queue->status)->null();
}
@ -332,7 +338,9 @@ class SchedulerTest extends \MailPoetTest {
$result = $scheduler->verifyMailpoetSubscriber($subscriber->id, $newsletter, $queue);
expect($result)->false();
// update the time queue is scheduled to run at
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect(Carbon::parse($updated_queue->scheduled_at))->equals(
Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp'))
->addMinutes(ScheduledTask::BASIC_RESCHEDULE_TIMEOUT)
@ -405,7 +413,9 @@ class SchedulerTest extends \MailPoetTest {
// return true
expect($scheduler->processScheduledStandardNewsletter($newsletter, $queue))->true();
// update queue's list of subscribers to process
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
$updated_queue_subscribers = $updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_UNPROCESSED);
expect($updated_queue_subscribers)->equals([$subscriber->id]);
// set queue's status to null
@ -470,7 +480,9 @@ class SchedulerTest extends \MailPoetTest {
expect($notification_history)->notEmpty();
// update queue with a list of subscribers to process and change newsletter id
// to that of the notification history
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
$updated_queue_subscribers = $updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_UNPROCESSED);
expect($updated_queue_subscribers)->equals([$subscriber->id]);
expect($updated_queue->newsletter_id)->equals($notification_history->id);

View File

@ -357,7 +357,9 @@ class SendingQueueTest extends \MailPoetTest {
expect($updated_newsletter->status)->equals(Newsletter::STATUS_SENT);
// queue status is set to completed
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect($updated_queue->status)->equals(SendingQueue::STATUS_COMPLETED);
// queue subscriber processed/to process count is updated
@ -407,7 +409,9 @@ class SendingQueueTest extends \MailPoetTest {
expect($updated_newsletter->status)->equals(Newsletter::STATUS_SENT);
// queue status is set to completed
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect($updated_queue->status)->equals(SendingQueue::STATUS_COMPLETED);
// queue subscriber processed/to process count is updated
@ -450,7 +454,9 @@ class SendingQueueTest extends \MailPoetTest {
$sending_queue_worker->process();
// queue status is set to completed
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect($updated_queue->status)->equals(SendingQueue::STATUS_COMPLETED);
// newsletter status is set to sent and sent_at date is populated
@ -529,7 +535,9 @@ class SendingQueueTest extends \MailPoetTest {
expect($updated_newsletter->status)->equals(Newsletter::STATUS_SENT);
// queue status is set to completed
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect($updated_queue->status)->equals(SendingQueue::STATUS_COMPLETED);
// queue subscriber processed/to process count is updated
@ -572,7 +580,9 @@ class SendingQueueTest extends \MailPoetTest {
$sending_queue_worker->process();
// queue status is set to completed
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect($updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_PROCESSED))
->equals([]);
@ -601,7 +611,9 @@ class SendingQueueTest extends \MailPoetTest {
);
$sending_queue_worker->process();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
// queue subscriber processed/to process count is updated
expect($updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_UNPROCESSED))
->equals([]);
@ -631,7 +643,9 @@ class SendingQueueTest extends \MailPoetTest {
);
$sending_queue_worker->process();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
// queue subscriber processed/to process count is updated
expect($updated_queue->getSubscribers(ScheduledTaskSubscriber::STATUS_UNPROCESSED))
->equals([]);
@ -651,7 +665,9 @@ class SendingQueueTest extends \MailPoetTest {
// newsletter is sent to existing subscriber
$sending_queue_worker->process();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect((int)$updated_queue->count_total)->equals(1);
// newsletter is not sent to trashed subscriber
@ -661,7 +677,9 @@ class SendingQueueTest extends \MailPoetTest {
$subscriber->deleted_at = Carbon::now();
$subscriber->save();
$sending_queue_worker->process();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect((int)$updated_queue->count_total)->equals(0);
}
@ -677,7 +695,9 @@ class SendingQueueTest extends \MailPoetTest {
$subscriber->status = Subscriber::STATUS_UNSUBSCRIBED;
$subscriber->save();
$sending_queue_worker->process();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect((int)$updated_queue->count_total)->equals(0);
}
@ -693,7 +713,9 @@ class SendingQueueTest extends \MailPoetTest {
$subscriber_segment->status = Subscriber::STATUS_UNSUBSCRIBED;
$subscriber_segment->save();
$sending_queue_worker->process();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect((int)$updated_queue->count_total)->equals(0);
}
@ -709,7 +731,9 @@ class SendingQueueTest extends \MailPoetTest {
$subscriber->status = Subscriber::STATUS_INACTIVE;
$subscriber->save();
$sending_queue_worker->process();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
expect((int)$updated_queue->count_total)->equals(0);
}

View File

@ -159,7 +159,9 @@ class NewsletterTest extends \MailPoetTest {
$newsletter_task->preProcessNewsletter($this->newsletter, $this->queue);
$link = NewsletterLink::where('newsletter_id', $this->newsletter->id)
->findOne();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
$rendered_newsletter = $updated_queue->getNewsletterRenderedBody();
expect($rendered_newsletter['html'])
->contains('[mailpoet_click_data]-' . $link->hash);
@ -182,7 +184,9 @@ class NewsletterTest extends \MailPoetTest {
$link = NewsletterLink::where('newsletter_id', $this->newsletter->id)
->findOne();
expect($link)->false();
$updated_queue = SendingTask::createFromQueue(SendingQueue::findOne($this->queue->id));
/** @var SendingQueue $updated_queue */
$updated_queue = SendingQueue::findOne($this->queue->id);
$updated_queue = SendingTask::createFromQueue($updated_queue);
$rendered_newsletter = $updated_queue->getNewsletterRenderedBody();
expect($rendered_newsletter['html'])
->notContains('[mailpoet_click_data]');