Use DI for automatic emails in JSON API
[MAILPOET-3924]
This commit is contained in:
@@ -2,17 +2,21 @@
|
||||
|
||||
namespace MailPoet\API\JSON\v1;
|
||||
|
||||
use MailPoet\AutomaticEmails\AutomaticEmails as AutomaticEmailsController;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
|
||||
class AutomaticEmailsTest extends \MailPoetTest {
|
||||
public $wp;
|
||||
|
||||
/** @var AutomaticEmails */
|
||||
private $api;
|
||||
|
||||
public function _before() {
|
||||
$this->wp = new WPFunctions;
|
||||
$this->api = new AutomaticEmails(new AutomaticEmailsController($this->wp), $this->wp);
|
||||
}
|
||||
|
||||
public function testItRequiresProperlyFormattedRequestWhenGettingEventOptions() {
|
||||
$API = new AutomaticEmails();
|
||||
$expectedErrorMessage = 'Improperly formatted request.';
|
||||
|
||||
// query is invalid
|
||||
@@ -22,7 +26,7 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => 'email_slug',
|
||||
'event_slug' => 'event_slug',
|
||||
];
|
||||
$result = $API->getEventOptions($data);
|
||||
$result = $this->api->getEventOptions($data);
|
||||
expect($result->errors[0]['message'])->equals($expectedErrorMessage);
|
||||
|
||||
// filter is invalid
|
||||
@@ -32,7 +36,7 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => 'email_slug',
|
||||
'event_slug' => 'event_slug',
|
||||
];
|
||||
$result = $API->getEventOptions($data);
|
||||
$result = $this->api->getEventOptions($data);
|
||||
expect($result->errors[0]['message'])->equals($expectedErrorMessage);
|
||||
|
||||
// email slug is invalid
|
||||
@@ -42,7 +46,7 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => null,
|
||||
'event_slug' => 'event_slug',
|
||||
];
|
||||
$result = $API->getEventOptions($data);
|
||||
$result = $this->api->getEventOptions($data);
|
||||
expect($result->errors[0]['message'])->equals($expectedErrorMessage);
|
||||
|
||||
// event slug is invalid
|
||||
@@ -52,12 +56,11 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => 'email_slug',
|
||||
'event_slug' => null,
|
||||
];
|
||||
$result = $API->getEventOptions($data);
|
||||
$result = $this->api->getEventOptions($data);
|
||||
expect($result->errors[0]['message'])->equals($expectedErrorMessage);
|
||||
}
|
||||
|
||||
public function testItRequiresValidEventFilterWhenGettingEventOptions() {
|
||||
$API = new AutomaticEmails();
|
||||
$expectedErrorMessage = 'Automatic email event filter does not exist.';
|
||||
|
||||
$this->wp->addFilter('mailpoet_automatic_email_test', function() {
|
||||
@@ -90,7 +93,7 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => 'email',
|
||||
'event_slug' => 'event_slug',
|
||||
];
|
||||
$result = $API->getEventOptions($data);
|
||||
$result = $this->api->getEventOptions($data);
|
||||
expect($result->errors[0]['message'])->equals($expectedErrorMessage);
|
||||
|
||||
$this->wp->removeAllFilters('mailpoet_automatic_email_test');
|
||||
@@ -98,8 +101,6 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItGetsEventOptions() {
|
||||
$API = new AutomaticEmails();
|
||||
|
||||
$this->wp->addFilter('mailpoet_automatic_email_test', function() {
|
||||
return [
|
||||
'slug' => 'email',
|
||||
@@ -129,7 +130,7 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => 'email',
|
||||
'event_slug' => 'event_slug',
|
||||
];
|
||||
$result = $API->getEventOptions($data);
|
||||
$result = $this->api->getEventOptions($data);
|
||||
expect($result->data)->equals('pass');
|
||||
|
||||
$this->wp->removeAllFilters('mailpoet_automatic_email_test');
|
||||
@@ -137,7 +138,6 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItRequiresProperlyFormattedRequestWhenGettingEventShortcodes() {
|
||||
$API = new AutomaticEmails();
|
||||
$expectedErrorMessage = 'Improperly formatted request.';
|
||||
|
||||
// email slug is invalid
|
||||
@@ -145,7 +145,7 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => null,
|
||||
'event_slug' => 'event_slug',
|
||||
];
|
||||
$result = $API->getEventOptions($data);
|
||||
$result = $this->api->getEventOptions($data);
|
||||
expect($result->errors[0]['message'])->equals($expectedErrorMessage);
|
||||
|
||||
// event slug is invalid
|
||||
@@ -153,12 +153,11 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => 'email_slug',
|
||||
'event_slug' => null,
|
||||
];
|
||||
$result = $API->getEventOptions($data);
|
||||
$result = $this->api->getEventOptions($data);
|
||||
expect($result->errors[0]['message'])->equals($expectedErrorMessage);
|
||||
}
|
||||
|
||||
public function testItRequiresValidEventWhenGettingEventShortcodes() {
|
||||
$API = new AutomaticEmails();
|
||||
$expectedErrorMessage = 'Automatic email event does not exist.';
|
||||
|
||||
$this->wp->addFilter('mailpoet_automatic_email_test', function() {
|
||||
@@ -182,14 +181,13 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'event_slug' => 'invalid_event',
|
||||
// should be 'event_slug'
|
||||
];
|
||||
$result = $API->getEventShortcodes($data);
|
||||
$result = $this->api->getEventShortcodes($data);
|
||||
expect($result->errors[0]['message'])->equals($expectedErrorMessage);
|
||||
|
||||
$this->wp->removeAllFilters('mailpoet_automatic_email_test');
|
||||
}
|
||||
|
||||
public function testItGetsEventShortcodes() {
|
||||
$API = new AutomaticEmails();
|
||||
$shortcodes = [
|
||||
[
|
||||
'text' => 'shortcode_text',
|
||||
@@ -217,7 +215,7 @@ class AutomaticEmailsTest extends \MailPoetTest {
|
||||
'email_slug' => 'email',
|
||||
'event_slug' => 'event_slug',
|
||||
];
|
||||
$result = $API->getEventShortcodes($data);
|
||||
$result = $this->api->getEventShortcodes($data);
|
||||
expect($result->data['email_title'])->equals($shortcodes);
|
||||
|
||||
$this->wp->removeAllFilters('mailpoet_automatic_email_test');
|
||||
|
Reference in New Issue
Block a user