Fix flaky schedule automatic email test

[MAILPOET-3793]
This commit is contained in:
Brezo Cordero
2021-09-27 13:45:06 -05:00
committed by Veljko V
parent 06ddc42657
commit d37f0642d5
3 changed files with 20 additions and 6 deletions

View File

@@ -7,8 +7,18 @@ use MailPoet\Models\ScheduledTask;
use MailPoet\Models\ScheduledTaskSubscriber;
use MailPoet\Models\SendingQueue;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\WP\Functions as WPFunctions;
class AutomaticEmailScheduler {
/** @var WPFunctions|null */
private $wp;
public function __construct(
?WPFunctions $wp = null
) {
$this->wp = $wp;
}
public function scheduleAutomaticEmail($group, $event, $schedulingCondition = false, $subscriberId = false, $meta = false) {
$newsletters = Scheduler::getNewsletters(Newsletter::TYPE_AUTOMATIC, $group);
if (empty($newsletters)) return false;
@@ -92,7 +102,7 @@ class AutomaticEmailScheduler {
$sendingTask->status = SendingQueue::STATUS_SCHEDULED;
$sendingTask->priority = SendingQueue::PRIORITY_MEDIUM;
$sendingTask->scheduledAt = Scheduler::getScheduledTimeWithDelay($newsletter->afterTimeType, $newsletter->afterTimeNumber);
$sendingTask->scheduledAt = Scheduler::getScheduledTimeWithDelay($newsletter->afterTimeType, $newsletter->afterTimeNumber, $this->wp);
return $sendingTask->save();
}
@@ -102,7 +112,7 @@ class AutomaticEmailScheduler {
$sendingTask->__set('meta', $meta);
}
// compute new 'scheduled_at' from now
$sendingTask->scheduledAt = Scheduler::getScheduledTimeWithDelay($newsletter->afterTimeType, $newsletter->afterTimeNumber);
$sendingTask->scheduledAt = Scheduler::getScheduledTimeWithDelay($newsletter->afterTimeType, $newsletter->afterTimeNumber, $this->wp);
$sendingTask->save();
}
}