Disable send buttons and endpoints
[MAILPOET-2394]
This commit is contained in:
committed by
Jack Kitterhing
parent
856c870ae5
commit
c9052d71d4
@@ -34,6 +34,7 @@ use MailPoet\Services\AuthorizedEmailsController;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Subscription\SubscriptionUrlFactory;
|
||||
use MailPoet\Tasks\Sending as SendingTask;
|
||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||
use MailPoet\WooCommerce\Helper as WCHelper;
|
||||
use MailPoet\WP\Emoji;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
@@ -150,7 +151,8 @@ class NewslettersTest extends \MailPoetTest {
|
||||
ContainerWrapper::getInstance()->get(PostNotificationScheduler::class),
|
||||
ContainerWrapper::getInstance()->get(Mailer::class),
|
||||
ContainerWrapper::getInstance()->get(MetaInfo::class),
|
||||
ContainerWrapper::getInstance()->get(Emoji::class)
|
||||
ContainerWrapper::getInstance()->get(Emoji::class),
|
||||
Stub::make(SubscribersFeature::class)
|
||||
);
|
||||
$response = $this->endpoint->get(['id' => $this->newsletter->id]);
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
@@ -206,7 +208,8 @@ class NewslettersTest extends \MailPoetTest {
|
||||
ContainerWrapper::getInstance()->get(PostNotificationScheduler::class),
|
||||
ContainerWrapper::getInstance()->get(Mailer::class),
|
||||
ContainerWrapper::getInstance()->get(MetaInfo::class),
|
||||
$emoji
|
||||
$emoji,
|
||||
Stub::make(SubscribersFeature::class)
|
||||
);
|
||||
|
||||
$response = $this->endpoint->save($valid_data);
|
||||
@@ -420,6 +423,30 @@ class NewslettersTest extends \MailPoetTest {
|
||||
expect($updated_newsletter->segments[0]['name'])->equals('Segment 1');
|
||||
}
|
||||
|
||||
function testItReturnsErrorIfSubscribersLimitReached() {
|
||||
$endpoint = new Newsletters(
|
||||
ContainerWrapper::getInstance()->get(BulkActionController::class),
|
||||
ContainerWrapper::getInstance()->get(Handler::class),
|
||||
ContainerWrapper::getInstance()->get(WPFunctions::class),
|
||||
$this->makeEmpty(WCHelper::class),
|
||||
SettingsController::getInstance(),
|
||||
$this->cron_helper,
|
||||
$this->make(AuthorizedEmailsController::class),
|
||||
ContainerWrapper::getInstance()->get(NewslettersRepository::class),
|
||||
ContainerWrapper::getInstance()->get(NewslettersResponseBuilder::class),
|
||||
ContainerWrapper::getInstance()->get(PostNotificationScheduler::class),
|
||||
ContainerWrapper::getInstance()->get(Mailer::class),
|
||||
ContainerWrapper::getInstance()->get(MetaInfo::class),
|
||||
ContainerWrapper::getInstance()->get(Emoji::class),
|
||||
Stub::make(SubscribersFeature::class, ['check' => true])
|
||||
);
|
||||
$res = $endpoint->setStatus([
|
||||
'id' => $this->newsletter->id,
|
||||
'status' => Newsletter::STATUS_ACTIVE,
|
||||
]);
|
||||
expect($res->status)->equals(APIResponse::STATUS_FORBIDDEN);
|
||||
}
|
||||
|
||||
function testItCanSetANewsletterStatus() {
|
||||
// set status to sending
|
||||
$response = $this->endpoint->setStatus
|
||||
@@ -581,7 +608,8 @@ class NewslettersTest extends \MailPoetTest {
|
||||
ContainerWrapper::getInstance()->get(PostNotificationScheduler::class),
|
||||
ContainerWrapper::getInstance()->get(Mailer::class),
|
||||
ContainerWrapper::getInstance()->get(MetaInfo::class),
|
||||
ContainerWrapper::getInstance()->get(Emoji::class)
|
||||
ContainerWrapper::getInstance()->get(Emoji::class),
|
||||
Stub::make(SubscribersFeature::class)
|
||||
);
|
||||
|
||||
$response = $this->endpoint->duplicate(['id' => $this->newsletter->id]);
|
||||
@@ -930,7 +958,8 @@ class NewslettersTest extends \MailPoetTest {
|
||||
ContainerWrapper::getInstance()->get(PostNotificationScheduler::class),
|
||||
ContainerWrapper::getInstance()->get(Mailer::class),
|
||||
ContainerWrapper::getInstance()->get(MetaInfo::class),
|
||||
$emoji
|
||||
$emoji,
|
||||
Stub::make(SubscribersFeature::class)
|
||||
);
|
||||
|
||||
$response = $this->endpoint->showPreview($data);
|
||||
|
@@ -3,6 +3,8 @@
|
||||
namespace MailPoet\Test\API\JSON\v1;
|
||||
|
||||
use Codeception\Util\Fixtures;
|
||||
use Codeception\Util\Stub;
|
||||
use MailPoet\API\JSON\Response as APIResponse;
|
||||
use MailPoet\API\JSON\v1\SendingQueue as SendingQueueAPI;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\NewsletterOption;
|
||||
@@ -12,6 +14,7 @@ use MailPoet\Models\SendingQueue as SendingQueueModel;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\SettingsRepository;
|
||||
use MailPoet\Tasks\Sending;
|
||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||
use MailPoetVendor\Idiorm\ORM;
|
||||
|
||||
class SendingQueueTest extends \MailPoetTest {
|
||||
@@ -45,7 +48,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
$newletter_options
|
||||
);
|
||||
|
||||
$sending_queue = new SendingQueueAPI();
|
||||
$sending_queue = new SendingQueueAPI(Stub::make(SubscribersFeature::class));
|
||||
$result = $sending_queue->add(['newsletter_id' => $newsletter->id]);
|
||||
$scheduled_task = ScheduledTask::findOne($result->data['task_id']);
|
||||
expect($scheduled_task->status)->equals(ScheduledTask::STATUS_SCHEDULED);
|
||||
@@ -53,6 +56,16 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
expect($scheduled_task->type)->equals(Sending::TASK_TYPE);
|
||||
}
|
||||
|
||||
function testItReturnsErrorIfSubscribersLimitReached() {
|
||||
$sending_queue = new SendingQueueAPI(Stub::make(SubscribersFeature::class, [
|
||||
'check' => true,
|
||||
]));
|
||||
$res = $sending_queue->add(['newsletter_id' => $this->newsletter->id]);
|
||||
expect($res->status)->equals(APIResponse::STATUS_FORBIDDEN);
|
||||
$res = $sending_queue->resume(['newsletter_id' => $this->newsletter->id]);
|
||||
expect($res->status)->equals(APIResponse::STATUS_FORBIDDEN);
|
||||
}
|
||||
|
||||
function testItReschedulesScheduledSendingQueueTask() {
|
||||
$newsletter = $this->newsletter;
|
||||
$newsletter->status = Newsletter::STATUS_SCHEDULED;
|
||||
@@ -66,7 +79,7 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
Newsletter::TYPE_STANDARD,
|
||||
$newletter_options
|
||||
);
|
||||
$sending_queue = new SendingQueueAPI();
|
||||
$sending_queue = new SendingQueueAPI(Stub::make(SubscribersFeature::class));
|
||||
|
||||
// add scheduled task
|
||||
$result = $sending_queue->add(['newsletter_id' => $newsletter->id]);
|
||||
|
Reference in New Issue
Block a user