Process Soft error for domain authorization

Pause the task and do not update counts.

[MAILPOET-5832]
This commit is contained in:
Brezo Cordero
2024-01-18 16:29:01 -06:00
committed by Aschepikov
parent fb406350a5
commit e7aa261828
3 changed files with 53 additions and 1 deletions

View File

@@ -6,9 +6,13 @@ use Codeception\Stub;
use Codeception\Stub\Expected;
use MailPoet\Cron\Workers\SendingQueue\SendingErrorHandler;
use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Entities\SendingQueueEntity;
use MailPoet\Logging\LoggerFactory;
use MailPoet\Mailer\MailerError;
use MailPoet\Mailer\SubscriberError;
use MailPoet\Newsletter\Sending\ScheduledTaskSubscribersRepository;
use MailPoet\Newsletter\Sending\SendingQueuesRepository;
use MailPoetVendor\Monolog\Logger;
class SendingErrorHandlerTest extends \MailPoetTest {
public function testItShouldProcessSoftErrorCorrectly() {
@@ -52,4 +56,33 @@ class SendingErrorHandlerTest extends \MailPoetTest {
);
$errorHandler->processError($error, new ScheduledTaskEntity(), $subscriberIds, $subscribers);
}
public function testItShouldProcessSoftErrorForDomainAuthorizationCorrectly() {
$error = new MailerError(
MailerError::OPERATION_DOMAIN_AUTHORIZATION,
MailerError::LEVEL_SOFT,
'Email violates Sender Domain requirements. Please authenticate the sender domain.',
null,
[]
);
$sendingQueuesRepository = Stub::make(
SendingQueuesRepository::class,
['pause' => Expected::once()],
);
$errorHandler = $this->getServiceWithOverrides(
SendingErrorHandler::class, [
'sendingQueuesRepository' => $sendingQueuesRepository,
'loggerFactory' => Stub::makeEmpty(
LoggerFactory::class,
['getLogger' => Stub::makeEmpty(Logger::class, ['info' => Expected::once()])]
),
]
);
$sendingQueue = new SendingQueueEntity();
$taskEntity = Stub::make(ScheduledTaskEntity::class, ['getSendingQueue' => $sendingQueue]);
$errorHandler->processError($error, $taskEntity, [], []);
}
}