Fix stats notification scheduling after sending a post notification
[MAILPOET-2231]
This commit is contained in:
committed by
M. Shull
parent
ea7d148dc7
commit
9ddc737b79
@ -19,6 +19,11 @@ class Scheduler {
|
|||||||
/** @var SettingsController */
|
/** @var SettingsController */
|
||||||
private $settings;
|
private $settings;
|
||||||
|
|
||||||
|
private $supported_types = [
|
||||||
|
Newsletter::TYPE_NOTIFICATION_HISTORY,
|
||||||
|
Newsletter::TYPE_STANDARD,
|
||||||
|
];
|
||||||
|
|
||||||
function __construct(SettingsController $settings) {
|
function __construct(SettingsController $settings) {
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
}
|
}
|
||||||
@ -47,7 +52,7 @@ class Scheduler {
|
|||||||
if ($this->isTaskScheduled($newsletter->id)) {
|
if ($this->isTaskScheduled($newsletter->id)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (($newsletter->type !== Newsletter::TYPE_NOTIFICATION) && ($newsletter->type !== Newsletter::TYPE_STANDARD)) {
|
if (!in_array($newsletter->type, $this->supported_types)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -36,6 +36,16 @@ class SchedulerTest extends \MailPoetTest {
|
|||||||
expect($task)->isInstanceOf(ScheduledTask::class);
|
expect($task)->isInstanceOf(ScheduledTask::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testShouldScheduleForNotificationHistory() {
|
||||||
|
$newsletter_id = 4;
|
||||||
|
$newsletter = Newsletter::createOrUpdate(['id' => $newsletter_id, 'type' => Newsletter::TYPE_NOTIFICATION_HISTORY]);
|
||||||
|
$this->stats_notifications->schedule($newsletter);
|
||||||
|
$notification = StatsNotification::where('newsletter_id', $newsletter_id)->findOne();
|
||||||
|
expect($notification)->isInstanceOf(StatsNotification::class);
|
||||||
|
$task = ScheduledTask::where('id', $notification->task_id)->findOne();
|
||||||
|
expect($task)->isInstanceOf(ScheduledTask::class);
|
||||||
|
}
|
||||||
|
|
||||||
function testShouldNotScheduleIfTrackingIsDisabled() {
|
function testShouldNotScheduleIfTrackingIsDisabled() {
|
||||||
$this->settings->set('tracking.enabled', false);
|
$this->settings->set('tracking.enabled', false);
|
||||||
$newsletter_id = 13;
|
$newsletter_id = 13;
|
||||||
|
Reference in New Issue
Block a user