Add more tests for rescheduling tasks

[MAILPOET-5755]
This commit is contained in:
 Ján Mikláš
2024-07-02 17:15:52 +02:00
committed by Ján Mikláš
parent 31821d05b5
commit 8b7556a479

View File

@@ -8,6 +8,7 @@ use MailPoet\API\JSON\v1\Help;
use MailPoet\Entities\ScheduledTaskEntity; use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Newsletter\Sending\ScheduledTasksRepository; use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
use MailPoet\Test\DataFactories\ScheduledTask as ScheduledTaskFactory; use MailPoet\Test\DataFactories\ScheduledTask as ScheduledTaskFactory;
use MailPoetVendor\Carbon\Carbon;
class HelpTest extends \MailPoetTest { class HelpTest extends \MailPoetTest {
@@ -96,8 +97,9 @@ class HelpTest extends \MailPoetTest {
} }
} }
public function testItCanRescheduleTask() { public function testItCanRescheduleTaskInFuture() {
$task = (new ScheduledTaskFactory())->create('sending', ScheduledTaskEntity::STATUS_CANCELLED, new \DateTime()); $futureDate = Carbon::now()->addDay();
$task = (new ScheduledTaskFactory())->create('sending', ScheduledTaskEntity::STATUS_CANCELLED, $futureDate);
$response = $this->endpoint->rescheduleTask(['id' => $task->getId()]); $response = $this->endpoint->rescheduleTask(['id' => $task->getId()]);
verify($response)->instanceOf(APIResponse::class); verify($response)->instanceOf(APIResponse::class);
verify($response->status)->equals(200); verify($response->status)->equals(200);
@@ -107,7 +109,21 @@ class HelpTest extends \MailPoetTest {
if ($task) { if ($task) {
verify($task->getStatus())->equals(ScheduledTaskEntity::STATUS_SCHEDULED); verify($task->getStatus())->equals(ScheduledTaskEntity::STATUS_SCHEDULED);
verify($task->getCancelledAt())->null(); verify($task->getCancelledAt())->null();
verify($task->getInProgress())->null(); }
}
public function testItCanRescheduleTaskInProgress() {
$pastDate = Carbon::now()->subDay();
$task = (new ScheduledTaskFactory())->create('sending', ScheduledTaskEntity::STATUS_CANCELLED, $pastDate);
$response = $this->endpoint->rescheduleTask(['id' => $task->getId()]);
verify($response)->instanceOf(APIResponse::class);
verify($response->status)->equals(200);
$task = $this->scheduledTasksRepository->findOneById($task->getId());
verify($task)->instanceOf(ScheduledTaskEntity::class);
if ($task) {
verify($task->getStatus())->equals(null); // task is running
verify($task->getCancelledAt())->null();
} }
} }
} }