Check validity on activating newsletters
This prevents users from activating automatic emails from listing pages that are not valid. This also adds more checks for the content of a newsletter, requiring that a newsletter have at least one content block in order to be valid. This change makes the server side validation check match what we're checking in the editor in mailpoet/assets/js/src/newsletter_editor /components/save.js and mailpoet/assets/js/src/newsletters/send.jsx [MAILPOET-4236]
This commit is contained in:
committed by
Veljko V
parent
fdaf22d46b
commit
27a86d2ca6
@ -143,7 +143,21 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$newsletter = new NewsletterEntity();
|
||||
$newsletter->setSubject('subject');
|
||||
$newsletter->setType(NewsletterEntity::TYPE_STANDARD);
|
||||
$newsletter->setBody(['content' => ['type' => 'container', 'columnLayout' => false, 'orientation' => 'vertical']]);
|
||||
$newsletter->setBody([
|
||||
'content' =>
|
||||
[
|
||||
'type' => 'container',
|
||||
'columnLayout' => false,
|
||||
'orientation' => 'vertical',
|
||||
'blocks' => [
|
||||
[
|
||||
'type' => 'header',
|
||||
'link' => '',
|
||||
'text' => 'Hello!'
|
||||
]
|
||||
]
|
||||
]
|
||||
]);
|
||||
$this->entityManager->persist($newsletter);
|
||||
$this->entityManager->flush();
|
||||
$sendingQueue = new SendingQueueAPI(
|
||||
@ -165,6 +179,20 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
expect($response['errors'][0]['error'])->stringContainsString('bad_request');
|
||||
}
|
||||
|
||||
public function testItRejectsNewslettersWithoutContentBlocks() {
|
||||
$newsletter = new NewsletterEntity();
|
||||
$newsletter->setSubject('subject');
|
||||
$newsletter->setType(NewsletterEntity::TYPE_STANDARD);
|
||||
$newsletter->setBody(['content' => ['type' => 'container', 'columnLayout' => false, 'orientation' => 'vertical']]);
|
||||
$this->entityManager->persist($newsletter);
|
||||
$this->entityManager->flush();
|
||||
$sendingQueue = $this->diContainer->get(SendingQueueAPI::class);
|
||||
$response = $sendingQueue->add(['newsletter_id' => $newsletter->getId()]);
|
||||
$result = $response->getData();
|
||||
expect($result['errors'][0])->array();
|
||||
expect($result['errors'][0]['message'])->stringContainsString('Poet, please add prose to your masterpiece before you send it to your followers');
|
||||
}
|
||||
|
||||
private function _createOrUpdateNewsletterOptions(NewsletterEntity $newsletter, $newsletterType, $options) {
|
||||
$newsletterOptionFieldRepository = $this->diContainer->get(NewsletterOptionFieldsRepository::class);
|
||||
$newsletterOptionRepository = $this->diContainer->get(NewsletterOptionsRepository::class);
|
||||
|
Reference in New Issue
Block a user