Prevents repeat subscription confirmation

Prevents scheduling of duplicate welcome notifications
This commit is contained in:
Vlad
2017-07-05 19:50:57 -04:00
parent 11bbf54aad
commit 89da4c9aae
4 changed files with 35 additions and 3 deletions

View File

@ -10,7 +10,7 @@ use MailPoet\Models\SendingQueue;
use MailPoet\Newsletter\Scheduler\Scheduler;
class NewsletterSchedulerTest extends MailPoetTest {
function testItSetsConstants() {
function testItSetsConstants() {
expect(Scheduler::SECONDS_IN_HOUR)->notEmpty();
expect(Scheduler::LAST_WEEKDAY_FORMAT)->notEmpty();
expect(Scheduler::WORDPRESS_ALL_ROLES)->notEmpty();
@ -63,6 +63,27 @@ class NewsletterSchedulerTest extends MailPoetTest {
expect(SendingQueue::findMany())->count(1);
}
function testItDoesNotCreateDuplicateWelcomeNotificationQueueRecords() {
$newsletter = (object)array(
'id' => 1,
'afterTimeNumber' => 2,
'afterTimeType' => 'hours'
);
$existing_subscriber = 678;
$existing_queue = SendingQueue::create();
$existing_queue->newsletter_id = $newsletter->id;
$existing_queue->subscribers = array('to_process' => array($existing_subscriber));
$existing_queue->save();
// queue is not scheduled
Scheduler::createWelcomeNotificationQueue($newsletter, $existing_subscriber);
expect(SendingQueue::findMany())->count(1);
// queue is not scheduled
Scheduler::createWelcomeNotificationQueue($newsletter, 1);
expect(SendingQueue::findMany())->count(2);
}
function testItCreatesWelcomeNotificationQueueRecord() {
$newsletter = (object)array(
'id' => 1,