diff --git a/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php b/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php index e886c9cac2..3a940a07fd 100644 --- a/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php +++ b/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php @@ -46,6 +46,8 @@ class Newsletter { if($newsletter->type === NewsletterModel::TYPE_NOTIFICATION_HISTORY && !$newsletter_contains_posts ) { + // delete notification history record since it will never be sent + $newsletter->delete(); return false; } // extract and save newsletter posts diff --git a/lib/Models/SendingQueue.php b/lib/Models/SendingQueue.php index 6d4ab74386..891163922b 100644 --- a/lib/Models/SendingQueue.php +++ b/lib/Models/SendingQueue.php @@ -52,13 +52,6 @@ class SendingQueue extends Model { return $this; } - function delete() { - if($parent_newsletter = $this->newsletter()->findOne()) { - $parent_newsletter->delete(); - }; - return parent::delete(); - } - function getSubscribers() { if(!is_serialized($this->subscribers)) { return $this->subscribers; diff --git a/tests/unit/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php b/tests/unit/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php index 3d7641062d..29fa39ffdd 100644 --- a/tests/unit/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php +++ b/tests/unit/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php @@ -74,15 +74,19 @@ class NewsletterTaskTest extends MailPoetTest { ->notContains('[mailpoet_open_data]'); } - function testReturnsFalseWhenNewsletterIsANotificationWithoutPosts() { + function testItReturnsFalseAndDeletesNewsletterWhenPostNotificationContainsNoPostsn() { $newsletter = $this->newsletter; $newsletter->type = Newsletter::TYPE_NOTIFICATION_HISTORY; // replace post id data tag with something else $newsletter->body = str_replace('data-post-id', 'id', $newsletter->body); $newsletter->save(); + // returned result is false $result = $this->newsletter_task->getAndPreProcess($this->queue); expect($result)->false(); + // newsletter is deleted + $newsletter = Newsletter::findOne($newsletter->id); + expect($newsletter)->false(); } function testItSavesNewsletterPosts() { diff --git a/tests/unit/Models/SendingQueueTest.php b/tests/unit/Models/SendingQueueTest.php deleted file mode 100644 index 40e77eb875..0000000000 --- a/tests/unit/Models/SendingQueueTest.php +++ /dev/null @@ -1,28 +0,0 @@ -newsletter = Newsletter::create(); - $this->newsletter->type = Newsletter::TYPE_STANDARD; - $this->newsletter->save(); - expect(Newsletter::findMany())->count(1); - $this->sending_queue = SendingQueue::create(); - $this->sending_queue->newsletter_id = $this->newsletter->id; - $this->sending_queue->save(); - expect(SendingQueue::findMany())->count(1); - } - - function testItDeletesParentNewsletter() { - $this->sending_queue->delete(); - expect(Newsletter::findMany())->count(0); - expect(SendingQueue::findMany())->count(0); - } - - function _after() { - ORM::raw_execute('TRUNCATE ' . Newsletter::$_table); - ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table); - } -} \ No newline at end of file