- Fixes mailer error message not being displayed when newsletter preview
sending fails
This commit is contained in:
@ -284,7 +284,7 @@ class Newsletters extends APIEndpoint {
|
||||
if($result['response'] === false) {
|
||||
$error = sprintf(
|
||||
__('The email could not be sent: %s', 'mailpoet'),
|
||||
$result['error']
|
||||
$result['error_message']
|
||||
);
|
||||
return $this->errorResponse(array(APIError::BAD_REQUEST => $error));
|
||||
} else {
|
||||
|
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
use Codeception\Util\Fixtures;
|
||||
use Codeception\Util\Stub;
|
||||
use \MailPoet\API\Response as APIResponse;
|
||||
use \MailPoet\API\Endpoints\Newsletters;
|
||||
use \MailPoet\Models\Newsletter;
|
||||
use MailPoet\API\Endpoints\Newsletters;
|
||||
use MailPoet\API\Response as APIResponse;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\NewsletterOptionField;
|
||||
use \MailPoet\Models\NewsletterSegment;
|
||||
use \MailPoet\Models\Segment;
|
||||
use MailPoet\Models\NewsletterSegment;
|
||||
use MailPoet\Models\Segment;
|
||||
use MailPoet\Newsletter\Scheduler\Scheduler;
|
||||
|
||||
class NewslettersTest extends MailPoetTest {
|
||||
@ -63,7 +63,8 @@ class NewslettersTest extends MailPoetTest {
|
||||
|
||||
$router = new Newsletters();
|
||||
$response = $router->save($valid_data);
|
||||
$saved_newsletter = Newsletter::filter('filterWithOptions')->findOne($response->data['id']);
|
||||
$saved_newsletter = Newsletter::filter('filterWithOptions')
|
||||
->findOne($response->data['id']);
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
expect($response->data)->equals($saved_newsletter->asArray());
|
||||
// newsletter option should be saved
|
||||
@ -131,7 +132,8 @@ class NewslettersTest extends MailPoetTest {
|
||||
// schedule should be recalculated when options change
|
||||
$newsletter_data['options']['intervalType'] = Scheduler::INTERVAL_IMMEDIATELY;
|
||||
$response = $router->save($newsletter_data);
|
||||
$saved_newsletter = Newsletter::filter('filterWithOptions')->findOne($response->data['id']);
|
||||
$saved_newsletter = Newsletter::filter('filterWithOptions')
|
||||
->findOne($response->data['id']);
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
expect($saved_newsletter->schedule)->equals('* * * * *');
|
||||
}
|
||||
@ -144,14 +146,18 @@ class NewslettersTest extends MailPoetTest {
|
||||
$newsletter_data = array(
|
||||
'id' => $this->newsletter->id,
|
||||
'subject' => 'My Updated Newsletter',
|
||||
'segments' => array($segment_1->asArray(), $fake_segment_id)
|
||||
'segments' => array(
|
||||
$segment_1->asArray(),
|
||||
$fake_segment_id
|
||||
)
|
||||
);
|
||||
|
||||
$response = $router->save($newsletter_data);
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
|
||||
$updated_newsletter =
|
||||
Newsletter::findOne($this->newsletter->id)->withSegments();
|
||||
Newsletter::findOne($this->newsletter->id)
|
||||
->withSegments();
|
||||
|
||||
expect(count($updated_newsletter->segments))->equals(1);
|
||||
expect($updated_newsletter->segments[0]['name'])->equals('Segment 1');
|
||||
@ -202,7 +208,8 @@ class NewslettersTest extends MailPoetTest {
|
||||
$response = $router->restore(array('id' => $this->newsletter->id));
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
expect($response->data)->equals(
|
||||
Newsletter::findOne($this->newsletter->id)->asArray()
|
||||
Newsletter::findOne($this->newsletter->id)
|
||||
->asArray()
|
||||
);
|
||||
expect($response->data['deleted_at'])->null();
|
||||
expect($response->meta['count'])->equals(1);
|
||||
@ -213,7 +220,8 @@ class NewslettersTest extends MailPoetTest {
|
||||
$response = $router->trash(array('id' => $this->newsletter->id));
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
expect($response->data)->equals(
|
||||
Newsletter::findOne($this->newsletter->id)->asArray()
|
||||
Newsletter::findOne($this->newsletter->id)
|
||||
->asArray()
|
||||
);
|
||||
expect($response->data['deleted_at'])->notNull();
|
||||
expect($response->meta['count'])->equals(1);
|
||||
@ -471,6 +479,31 @@ class NewslettersTest extends MailPoetTest {
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
}
|
||||
|
||||
function testItReturnsMaillerErrorWhenSendingFailed() {
|
||||
$subscriber = 'test@subscriber.com';
|
||||
$data = array(
|
||||
'subscriber' => $subscriber,
|
||||
'id' => $this->newsletter->id,
|
||||
'mailer' => Stub::makeEmpty(
|
||||
'\MailPoet\Mailer\Mailer',
|
||||
array(
|
||||
'send' => function($newsletter, $subscriber) {
|
||||
expect(is_array($newsletter))->true();
|
||||
expect($newsletter['body']['text'])->contains('Hello test');
|
||||
expect($subscriber)->equals($subscriber);
|
||||
return array(
|
||||
'response' => false,
|
||||
'error_message' => 'failed'
|
||||
);
|
||||
}
|
||||
)
|
||||
)
|
||||
);
|
||||
$router = new Newsletters();
|
||||
$response = $router->sendPreview($data);
|
||||
expect($response->errors[0]['message'])->equals('The email could not be sent: failed');
|
||||
}
|
||||
|
||||
function _after() {
|
||||
Newsletter::deleteMany();
|
||||
NewsletterSegment::deleteMany();
|
||||
|
Reference in New Issue
Block a user