Prevent segmentation of automation emails
[MAILPOET-4432]
This commit is contained in:
committed by
alex-mailpoet
parent
c0504f52a0
commit
445d07ac68
@ -122,6 +122,7 @@ class NewsletterSaveController {
|
||||
}
|
||||
|
||||
$newsletter = isset($data['id']) ? $this->getNewsletter($data) : $this->createNewsletter($data);
|
||||
$data = $this->sanitizeAutomationEmailData($data, $newsletter);
|
||||
$oldSenderAddress = $newsletter->getSenderAddress();
|
||||
|
||||
$this->updateNewsletter($newsletter, $data);
|
||||
@ -153,6 +154,14 @@ class NewsletterSaveController {
|
||||
return $newsletter;
|
||||
}
|
||||
|
||||
private function sanitizeAutomationEmailData(array $data, NewsletterEntity $newsletter): array {
|
||||
if ($newsletter->getType() !== NewsletterEntity::TYPE_AUTOMATION) {
|
||||
return $data;
|
||||
}
|
||||
$data['segments'] = [];
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function duplicate(NewsletterEntity $newsletter): NewsletterEntity {
|
||||
$duplicate = clone $newsletter;
|
||||
|
||||
|
@ -406,6 +406,18 @@ class NewslettersTest extends \MailPoetTest {
|
||||
expect($response->errors[0]['message'])->equals('Please specify a type.');
|
||||
}
|
||||
|
||||
public function testItCanCreateAnAutomationNewsletter() {
|
||||
$data = [
|
||||
'subject' => 'My Automation newsletter',
|
||||
'type' => NewsletterEntity::TYPE_AUTOMATION,
|
||||
];
|
||||
$response = $this->endpoint->create($data);
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
$newsletter = $this->newsletterRepository->findOneBy(['subject' => 'My Automation newsletter']);
|
||||
assert($newsletter instanceof NewsletterEntity);
|
||||
expect($response->data)->equals($this->newslettersResponseBuilder->build($newsletter));
|
||||
}
|
||||
|
||||
public function testItHasDefaultSenderAfterCreate() {
|
||||
$data = [
|
||||
'subject' => 'My First Newsletter',
|
||||
|
@ -43,6 +43,10 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
]);
|
||||
}
|
||||
|
||||
public function testItDoesNotScheduleAutomationEmailsWithTheSendingQueue() {
|
||||
|
||||
}
|
||||
|
||||
public function testItCreatesNewScheduledSendingQueueTask() {
|
||||
$newsletter = $this->newsletter;
|
||||
$newsletter->setStatus(NewsletterEntity::STATUS_SCHEDULED);
|
||||
|
@ -201,6 +201,26 @@ class NewsletterSaveControllerTest extends \MailPoetTest {
|
||||
expect($segment->getName())->equals('Segment 1');
|
||||
}
|
||||
|
||||
|
||||
public function testItDoesNotSaveSegmentsForAutomationEmails() {
|
||||
$segment = new SegmentEntity('Segment 1', SegmentEntity::TYPE_DEFAULT, 'Segment 1 description');
|
||||
$this->entityManager->persist($segment);
|
||||
$this->entityManager->flush();
|
||||
$fakeSegmentId = 1;
|
||||
|
||||
$newsletter = $this->createNewsletter(NewsletterEntity::TYPE_AUTOMATION);
|
||||
$newsletterData = [
|
||||
'id' => $newsletter->getId(),
|
||||
'segments' => [
|
||||
['id' => $segment->getId()],
|
||||
$fakeSegmentId,
|
||||
],
|
||||
];
|
||||
|
||||
$newsletter = $this->saveController->save($newsletterData);
|
||||
expect(count($newsletter->getNewsletterSegments()))->equals(0);
|
||||
}
|
||||
|
||||
public function testItDeletesSendingQueueAndSetsNewsletterStatusToDraftWhenItIsUnscheduled() {
|
||||
$newsletter = $this->createNewsletter(NewsletterEntity::TYPE_STANDARD, NewsletterEntity::STATUS_SCHEDULED);
|
||||
|
||||
|
Reference in New Issue
Block a user