Prevents sending queue rerendering when post notification is updated
This commit is contained in:
@ -116,7 +116,7 @@ class Newsletters extends APIEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$queue = $newsletter->getQueue();
|
$queue = $newsletter->getQueue();
|
||||||
if($queue) {
|
if($queue && !in_array($newsletter->type, array(Newsletter::TYPE_NOTIFICATION, Newsletter::TYPE_NOTIFICATION_HISTORY))) {
|
||||||
// if newsletter was previously scheduled and is now unscheduled, set its status to DRAFT and delete associated queue record
|
// if newsletter was previously scheduled and is now unscheduled, set its status to DRAFT and delete associated queue record
|
||||||
if($newsletter->status === Newsletter::STATUS_SCHEDULED && isset($options['isScheduled']) && empty($options['isScheduled'])) {
|
if($newsletter->status === Newsletter::STATUS_SCHEDULED && isset($options['isScheduled']) && empty($options['isScheduled'])) {
|
||||||
$queue->delete();
|
$queue->delete();
|
||||||
|
@ -169,6 +169,32 @@ class NewslettersTest extends \MailPoetTest {
|
|||||||
expect($updated_newsletter->subject)->equals('My Updated Newsletter');
|
expect($updated_newsletter->subject)->equals('My Updated Newsletter');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testItDoesNotRerenderPostNotificationsUponUpdate() {
|
||||||
|
$sending_queue = SendingTask::create();
|
||||||
|
$sending_queue->newsletter_id = $this->post_notification->id;
|
||||||
|
$sending_queue->status = SendingQueue::STATUS_SCHEDULED;
|
||||||
|
$sending_queue->newsletter_rendered_body = null;
|
||||||
|
$sending_queue->newsletter_rendered_subject = null;
|
||||||
|
$sending_queue->save();
|
||||||
|
expect($sending_queue->getErrors())->false();
|
||||||
|
|
||||||
|
$router = new Newsletters();
|
||||||
|
$newsletter_data = array(
|
||||||
|
'id' => $this->post_notification->id,
|
||||||
|
'subject' => 'My Updated Newsletter',
|
||||||
|
'body' => Fixtures::get('newsletter_body_template'),
|
||||||
|
);
|
||||||
|
|
||||||
|
$response = $router->save($newsletter_data);
|
||||||
|
$updated_queue = SendingQueue::where('newsletter_id', $this->post_notification->id)
|
||||||
|
->findOne()
|
||||||
|
->asArray();
|
||||||
|
|
||||||
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
expect($updated_queue['newsletter_rendered_body'])->null();
|
||||||
|
expect($updated_queue['newsletter_rendered_subject'])->null();
|
||||||
|
}
|
||||||
|
|
||||||
function testItCanRerenderQueueUponSave() {
|
function testItCanRerenderQueueUponSave() {
|
||||||
$sending_queue = SendingTask::create();
|
$sending_queue = SendingTask::create();
|
||||||
$sending_queue->newsletter_id = $this->newsletter->id;
|
$sending_queue->newsletter_id = $this->newsletter->id;
|
||||||
|
Reference in New Issue
Block a user