Remove Coupon block feature flag

MAILPOET-4978
This commit is contained in:
Oluwaseun Olorunsola
2023-02-17 13:41:42 +01:00
committed by Aschepikov
parent 87e5ea8dfd
commit 3b9cbbfc61
7 changed files with 8 additions and 39 deletions

View File

@ -8,11 +8,8 @@ import ReactDOM from 'react-dom';
import _ from 'underscore'; import _ from 'underscore';
import jQuery from 'jquery'; import jQuery from 'jquery';
import 'backbone.marionette'; import 'backbone.marionette';
import { MailPoet } from 'mailpoet';
import { Settings } from './coupon/settings'; import { Settings } from './coupon/settings';
export const FEATURE_COUPON_BLOCK = 'Coupon block';
const Module: Record<string, (...args: unknown[]) => void> = {}; const Module: Record<string, (...args: unknown[]) => void> = {};
const base = BaseBlock; const base = BaseBlock;
@ -286,10 +283,7 @@ Module.CouponWidgetView = base.WidgetView.extend({
}); });
App.on('before:start', (BeforeStartApp) => { App.on('before:start', (BeforeStartApp) => {
if ( if (!window.MailPoet.isWoocommerceActive) {
!MailPoet.FeaturesController.isSupported(FEATURE_COUPON_BLOCK) ||
!window.MailPoet.isWoocommerceActive
) {
return; return;
} }
BeforeStartApp.registerBlockType('coupon', { BeforeStartApp.registerBlockType('coupon', {

View File

@ -6,16 +6,12 @@ use MailPoetVendor\Doctrine\DBAL\Exception\TableNotFoundException;
class FeaturesController { class FeaturesController {
const FEATURE_HOMEPAGE = 'homepage'; const FEATURE_HOMEPAGE = 'homepage';
const FEATURE_COUPON_BLOCK = 'Coupon block';
const LANDINGPAGE_AB_TEST_DEBUGGER = 'landingpage_ab_test_debugger'; const LANDINGPAGE_AB_TEST_DEBUGGER = 'landingpage_ab_test_debugger';
// Define feature defaults in the array below in the following form: // Define feature defaults in the array below in the following form:
// self::FEATURE_NAME_OF_FEATURE => true, // self::FEATURE_NAME_OF_FEATURE => true,
private $defaults = [ private $defaults = [
self::FEATURE_HOMEPAGE => false, self::FEATURE_HOMEPAGE => false,
self::FEATURE_COUPON_BLOCK => false,
self::LANDINGPAGE_AB_TEST_DEBUGGER => false, self::LANDINGPAGE_AB_TEST_DEBUGGER => false,
]; ];

View File

@ -3,7 +3,6 @@
namespace MailPoet\Newsletter\Renderer; namespace MailPoet\Newsletter\Renderer;
use MailPoet\Entities\NewsletterEntity; use MailPoet\Entities\NewsletterEntity;
use MailPoet\Features\FeaturesController;
use MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent; use MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent;
use MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock; use MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock;
use MailPoet\Tasks\Sending as SendingTask; use MailPoet\Tasks\Sending as SendingTask;
@ -32,21 +31,16 @@ class Preprocessor {
/*** @var CouponPreProcessor */ /*** @var CouponPreProcessor */
private $couponPreProcessor; private $couponPreProcessor;
/*** @var FeaturesController */
private $featuresController;
public function __construct( public function __construct(
AbandonedCartContent $abandonedCartContent, AbandonedCartContent $abandonedCartContent,
AutomatedLatestContentBlock $automatedLatestContent, AutomatedLatestContentBlock $automatedLatestContent,
ContentPreprocessor $wooCommerceContentPreprocessor, ContentPreprocessor $wooCommerceContentPreprocessor,
CouponPreProcessor $couponPreProcessor, CouponPreProcessor $couponPreProcessor
FeaturesController $featuresController
) { ) {
$this->abandonedCartContent = $abandonedCartContent; $this->abandonedCartContent = $abandonedCartContent;
$this->automatedLatestContent = $automatedLatestContent; $this->automatedLatestContent = $automatedLatestContent;
$this->wooCommerceContentPreprocessor = $wooCommerceContentPreprocessor; $this->wooCommerceContentPreprocessor = $wooCommerceContentPreprocessor;
$this->couponPreProcessor = $couponPreProcessor; $this->couponPreProcessor = $couponPreProcessor;
$this->featuresController = $featuresController;
} }
/** /**
@ -60,9 +54,9 @@ class Preprocessor {
} }
$blocks = []; $blocks = [];
$contentBlocks = $content['blocks']; $contentBlocks = $content['blocks'];
if ($this->featuresController->isSupported(FeaturesController::FEATURE_COUPON_BLOCK)) {
$contentBlocks = $this->couponPreProcessor->processCoupons($newsletter, $contentBlocks, $preview); $contentBlocks = $this->couponPreProcessor->processCoupons($newsletter, $contentBlocks, $preview);
}
foreach ($contentBlocks as $block) { foreach ($contentBlocks as $block) {
$processedBlock = $this->processBlock($newsletter, $block, $preview, $sendingTask); $processedBlock = $this->processBlock($newsletter, $block, $preview, $sendingTask);
if (!empty($processedBlock)) { if (!empty($processedBlock)) {

View File

@ -2,19 +2,13 @@
namespace MailPoet\Test\Acceptance; namespace MailPoet\Test\Acceptance;
use MailPoet\Features\FeaturesController;
use MailPoet\Newsletter\Renderer\Blocks\Coupon; use MailPoet\Newsletter\Renderer\Blocks\Coupon;
use MailPoet\Test\DataFactories\Features;
use MailPoet\Test\DataFactories\Newsletter; use MailPoet\Test\DataFactories\Newsletter;
/** /**
* @group woo * @group woo
*/ */
class EditorCouponCest { class EditorCouponCest {
public function _before() {
(new Features())->withFeatureEnabled(FeaturesController::FEATURE_COUPON_BLOCK);
}
public function addCoupon(\AcceptanceTester $i) { public function addCoupon(\AcceptanceTester $i) {
$couponInEditor = '[data-automation-id="coupon_block"]'; $couponInEditor = '[data-automation-id="coupon_block"]';
$couponSettingsHeading = '[data-automation-id="coupon_settings_heading"]'; $couponSettingsHeading = '[data-automation-id="coupon_settings_heading"]';

View File

@ -16,7 +16,6 @@ use MailPoet\Entities\NewsletterPostEntity;
use MailPoet\Entities\ScheduledTaskEntity; use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Entities\SendingQueueEntity; use MailPoet\Entities\SendingQueueEntity;
use MailPoet\Entities\SubscriberEntity; use MailPoet\Entities\SubscriberEntity;
use MailPoet\Features\FeaturesController;
use MailPoet\Logging\LoggerFactory; use MailPoet\Logging\LoggerFactory;
use MailPoet\Mailer\MailerLog; use MailPoet\Mailer\MailerLog;
use MailPoet\Newsletter\NewsletterPostsRepository; use MailPoet\Newsletter\NewsletterPostsRepository;
@ -26,7 +25,6 @@ use MailPoet\Newsletter\Sending\SendingQueuesRepository;
use MailPoet\Router\Router; use MailPoet\Router\Router;
use MailPoet\Settings\SettingsRepository; use MailPoet\Settings\SettingsRepository;
use MailPoet\Tasks\Sending as SendingTask; use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\Test\DataFactories\Features;
use MailPoet\Test\DataFactories\Newsletter as NewsletterFactory; use MailPoet\Test\DataFactories\Newsletter as NewsletterFactory;
use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory; use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory;
use MailPoet\WooCommerce\Helper; use MailPoet\WooCommerce\Helper;
@ -487,8 +485,6 @@ class NewsletterTest extends \MailPoetTest {
* @group woo * @group woo
*/ */
public function testItGeneratesWooCommerceCouponForCouponBlock(): void { public function testItGeneratesWooCommerceCouponForCouponBlock(): void {
(new Features())->withFeatureEnabled(FeaturesController::FEATURE_COUPON_BLOCK);
$newsletter = (new NewsletterFactory()) $newsletter = (new NewsletterFactory())
->loadBodyFrom('newsletterWithCoupon.json') ->loadBodyFrom('newsletterWithCoupon.json')
->withType(NewsletterEntity::TYPE_STANDARD) ->withType(NewsletterEntity::TYPE_STANDARD)

View File

@ -5,7 +5,6 @@ namespace MailPoet\WooCommerce\TransactionalEmails;
use Codeception\Stub; use Codeception\Stub;
use MailPoet\Config\ServicesChecker; use MailPoet\Config\ServicesChecker;
use MailPoet\Entities\NewsletterEntity; use MailPoet\Entities\NewsletterEntity;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
use MailPoet\Newsletter\Editor\LayoutHelper as L; use MailPoet\Newsletter\Editor\LayoutHelper as L;
use MailPoet\Newsletter\NewslettersRepository; use MailPoet\Newsletter\NewslettersRepository;
@ -111,8 +110,7 @@ class RendererTest extends \MailPoetTest {
$this->diContainer->get(\MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent::class), $this->diContainer->get(\MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent::class),
$this->diContainer->get(\MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock::class), $this->diContainer->get(\MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock::class),
$wooPreprocessor, $wooPreprocessor,
$this->diContainer->get(\MailPoet\WooCommerce\CouponPreProcessor::class), $this->diContainer->get(\MailPoet\WooCommerce\CouponPreProcessor::class)
$this->diContainer->get(FeaturesController::class)
), ),
$this->diContainer->get(\MailPoetVendor\CSS::class), $this->diContainer->get(\MailPoetVendor\CSS::class),
$this->diContainer->get(ServicesChecker::class), $this->diContainer->get(ServicesChecker::class),

View File

@ -4,7 +4,6 @@ namespace MailPoet\Test\Newsletter;
use Codeception\Stub; use Codeception\Stub;
use MailPoet\Entities\NewsletterEntity; use MailPoet\Entities\NewsletterEntity;
use MailPoet\Features\FeaturesController;
use MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent; use MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent;
use MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock; use MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock;
use MailPoet\Newsletter\Renderer\Preprocessor; use MailPoet\Newsletter\Renderer\Preprocessor;
@ -23,8 +22,7 @@ class PreprocessorTest extends \MailPoetUnitTest {
], ],
]); ]);
$wooPreprocessor = new TransactionalEmails\ContentPreprocessor($transactionalEmails); $wooPreprocessor = new TransactionalEmails\ContentPreprocessor($transactionalEmails);
$featuresController = Stub::make(FeaturesController::class); $preprocessor = new Preprocessor($acc, $alc, $wooPreprocessor, $couponPreProcessor);
$preprocessor = new Preprocessor($acc, $alc, $wooPreprocessor, $couponPreProcessor, $featuresController);
expect($preprocessor->processBlock(new NewsletterEntity(), ['type' => 'woocommerceHeading']))->equals([[ expect($preprocessor->processBlock(new NewsletterEntity(), ['type' => 'woocommerceHeading']))->equals([[
'type' => 'container', 'type' => 'container',
'orientation' => 'horizontal', 'orientation' => 'horizontal',
@ -52,8 +50,7 @@ class PreprocessorTest extends \MailPoetUnitTest {
$alc = Stub::make(AutomatedLatestContentBlock::class); $alc = Stub::make(AutomatedLatestContentBlock::class);
$couponPreProcessor = Stub::make(CouponPreProcessor::class); $couponPreProcessor = Stub::make(CouponPreProcessor::class);
$wooPreprocessor = new TransactionalEmails\ContentPreprocessor(Stub::make(TransactionalEmails::class)); $wooPreprocessor = new TransactionalEmails\ContentPreprocessor(Stub::make(TransactionalEmails::class));
$featuresController = Stub::make(FeaturesController::class); $preprocessor = new Preprocessor($acc, $alc, $wooPreprocessor, $couponPreProcessor);
$preprocessor = new Preprocessor($acc, $alc, $wooPreprocessor, $couponPreProcessor, $featuresController);
expect($preprocessor->processBlock(new NewsletterEntity(), ['type' => 'woocommerceContent']))->equals([[ expect($preprocessor->processBlock(new NewsletterEntity(), ['type' => 'woocommerceContent']))->equals([[
'type' => 'container', 'type' => 'container',
'orientation' => 'horizontal', 'orientation' => 'horizontal',