diff --git a/lib/Models/ScheduledTask.php b/lib/Models/ScheduledTask.php index 1f9c93159f..86355f564d 100644 --- a/lib/Models/ScheduledTask.php +++ b/lib/Models/ScheduledTask.php @@ -79,7 +79,7 @@ class ScheduledTask extends Model { 'WHERE ' . 'q.`newsletter_id` = ' . $newsletter->id() . ' AND t.`status` = "' . self::STATUS_PAUSED . '" ' . - ' AND t.`scheduled_at` > NOW()' + ' AND t.`scheduled_at` > CURDATE() - INTERVAL 30 DAY' ); } diff --git a/tasks/phpstan/phpstan-baseline-integration-tests.neon b/tasks/phpstan/phpstan-baseline-integration-tests.neon index 3c4c99cb75..2cefe50e5e 100644 --- a/tasks/phpstan/phpstan-baseline-integration-tests.neon +++ b/tasks/phpstan/phpstan-baseline-integration-tests.neon @@ -617,7 +617,7 @@ parameters: - message: "#^Cannot access property \\$status on MailPoet\\\\Models\\\\ScheduledTask\\|false\\.$#" - count: 5 + count: 6 path: ../../tests/integration/Models/ScheduledTaskTest.php - diff --git a/tests/integration/Models/ScheduledTaskTest.php b/tests/integration/Models/ScheduledTaskTest.php index e57bd87849..3af025fc63 100644 --- a/tests/integration/Models/ScheduledTaskTest.php +++ b/tests/integration/Models/ScheduledTaskTest.php @@ -48,6 +48,10 @@ class ScheduledTaskTest extends \MailPoetTest { 'status' => ScheduledTask::STATUS_PAUSED, 'scheduled_at' => Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp'))->subDays(10)->format('Y-m-d H:i:s'), ]); + $outdatedTask = ScheduledTask::createOrUpdate([ + 'status' => ScheduledTask::STATUS_PAUSED, + 'scheduled_at' => Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp'))->subDays(31)->format('Y-m-d H:i:s'), + ]); SendingQueue::createOrUpdate([ 'newsletter_id' => $newsletter->id(), 'task_id' => $task1->id(), @@ -60,13 +64,19 @@ class ScheduledTaskTest extends \MailPoetTest { 'newsletter_id' => $newsletter->id(), 'task_id' => $task3->id(), ]); + SendingQueue::createOrUpdate([ + 'newsletter_id' => $newsletter->id(), + 'task_id' => $outdatedTask->id(), + ]); ScheduledTask::setScheduledAllByNewsletter($newsletter); $task1Found = ScheduledTask::findOne($task1->id()); expect($task1Found->status)->equals(ScheduledTask::STATUS_SCHEDULED); $task2Found = ScheduledTask::findOne($task2->id()); expect($task2Found->status)->equals(ScheduledTask::STATUS_COMPLETED); $task3Found = ScheduledTask::findOne($task3->id()); - expect($task3Found->status)->equals(ScheduledTask::STATUS_PAUSED); + expect($task3Found->status)->equals(ScheduledTask::STATUS_SCHEDULED); + $outdatedTaskFound = ScheduledTask::findOne($outdatedTask->id()); + expect($outdatedTaskFound->status)->equals(ScheduledTask::STATUS_PAUSED); } public function testItPauseAllByNewsletters() {