Use DI for automatic emails in JSON API

[MAILPOET-3924]
This commit is contained in:
Jan Jakes
2021-12-09 13:25:35 +01:00
committed by Veljko V
parent eecbeebafd
commit 897d89aa5a
3 changed files with 30 additions and 25 deletions

View File

@@ -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');