Move temporary automation migrator to a new migration
[MAILPOET-4788]
This commit is contained in:
@@ -4,7 +4,6 @@ namespace MailPoet\AdminPages\Pages;
|
|||||||
|
|
||||||
use MailPoet\AdminPages\PageRenderer;
|
use MailPoet\AdminPages\PageRenderer;
|
||||||
use MailPoet\Automation\Engine\Data\AutomationTemplate;
|
use MailPoet\Automation\Engine\Data\AutomationTemplate;
|
||||||
use MailPoet\Automation\Engine\Migrations\Migrator;
|
|
||||||
use MailPoet\Automation\Engine\Storage\AutomationStorage;
|
use MailPoet\Automation\Engine\Storage\AutomationStorage;
|
||||||
use MailPoet\Automation\Engine\Storage\AutomationTemplateStorage;
|
use MailPoet\Automation\Engine\Storage\AutomationTemplateStorage;
|
||||||
use MailPoet\Form\AssetsController;
|
use MailPoet\Form\AssetsController;
|
||||||
@@ -14,9 +13,6 @@ class Automation {
|
|||||||
/** @var AssetsController */
|
/** @var AssetsController */
|
||||||
private $assetsController;
|
private $assetsController;
|
||||||
|
|
||||||
/** @var Migrator */
|
|
||||||
private $migrator;
|
|
||||||
|
|
||||||
/** @var PageRenderer */
|
/** @var PageRenderer */
|
||||||
private $pageRenderer;
|
private $pageRenderer;
|
||||||
|
|
||||||
@@ -31,14 +27,12 @@ class Automation {
|
|||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
AssetsController $assetsController,
|
AssetsController $assetsController,
|
||||||
Migrator $migrator,
|
|
||||||
PageRenderer $pageRenderer,
|
PageRenderer $pageRenderer,
|
||||||
WPFunctions $wp,
|
WPFunctions $wp,
|
||||||
AutomationStorage $automationStorage,
|
AutomationStorage $automationStorage,
|
||||||
AutomationTemplateStorage $templateStorage
|
AutomationTemplateStorage $templateStorage
|
||||||
) {
|
) {
|
||||||
$this->assetsController = $assetsController;
|
$this->assetsController = $assetsController;
|
||||||
$this->migrator = $migrator;
|
|
||||||
$this->pageRenderer = $pageRenderer;
|
$this->pageRenderer = $pageRenderer;
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
$this->automationStorage = $automationStorage;
|
$this->automationStorage = $automationStorage;
|
||||||
@@ -47,10 +41,6 @@ class Automation {
|
|||||||
|
|
||||||
public function render() {
|
public function render() {
|
||||||
$this->assetsController->setupAutomationListingDependencies();
|
$this->assetsController->setupAutomationListingDependencies();
|
||||||
|
|
||||||
if (!$this->migrator->hasSchema()) {
|
|
||||||
$this->migrator->createSchema();
|
|
||||||
}
|
|
||||||
$this->pageRenderer->displayPage('automation.html', [
|
$this->pageRenderer->displayPage('automation.html', [
|
||||||
'api' => [
|
'api' => [
|
||||||
'root' => rtrim($this->wp->escUrlRaw($this->wp->restUrl()), '/'),
|
'root' => rtrim($this->wp->escUrlRaw($this->wp->restUrl()), '/'),
|
||||||
|
@@ -1,136 +0,0 @@
|
|||||||
<?php declare(strict_types = 1);
|
|
||||||
|
|
||||||
namespace MailPoet\Automation\Engine\Migrations;
|
|
||||||
|
|
||||||
use MailPoet\Automation\Engine\Exceptions;
|
|
||||||
use wpdb;
|
|
||||||
|
|
||||||
class Migrator {
|
|
||||||
/** @var string */
|
|
||||||
private $prefix;
|
|
||||||
|
|
||||||
/** @var wpdb */
|
|
||||||
private $wpdb;
|
|
||||||
|
|
||||||
public function __construct() {
|
|
||||||
global $wpdb;
|
|
||||||
$this->prefix = $wpdb->prefix . 'mailpoet_';
|
|
||||||
$this->wpdb = $wpdb;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function createSchema(): void {
|
|
||||||
$this->removeOldSchema();
|
|
||||||
|
|
||||||
$this->runQuery("
|
|
||||||
CREATE TABLE {$this->prefix}automations (
|
|
||||||
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
name varchar(255) NOT NULL,
|
|
||||||
author bigint NOT NULL,
|
|
||||||
status varchar(255) NOT NULL,
|
|
||||||
created_at timestamp NOT NULL,
|
|
||||||
updated_at timestamp NOT NULL,
|
|
||||||
activated_at timestamp NULL,
|
|
||||||
deleted_at timestamp NULL,
|
|
||||||
PRIMARY KEY (id)
|
|
||||||
);
|
|
||||||
");
|
|
||||||
|
|
||||||
$this->runQuery("
|
|
||||||
CREATE TABLE {$this->prefix}automation_versions (
|
|
||||||
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
automation_id int(11) unsigned NOT NULL,
|
|
||||||
steps longtext,
|
|
||||||
created_at timestamp NOT NULL,
|
|
||||||
updated_at timestamp NOT NULL,
|
|
||||||
PRIMARY KEY (id),
|
|
||||||
INDEX (automation_id)
|
|
||||||
);
|
|
||||||
");
|
|
||||||
|
|
||||||
$this->runQuery("
|
|
||||||
CREATE TABLE {$this->prefix}automation_triggers (
|
|
||||||
automation_id int(11) unsigned NOT NULL,
|
|
||||||
trigger_key varchar(255),
|
|
||||||
PRIMARY KEY (automation_id, trigger_key)
|
|
||||||
);
|
|
||||||
");
|
|
||||||
|
|
||||||
$this->runQuery("
|
|
||||||
CREATE TABLE {$this->prefix}automation_runs (
|
|
||||||
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
automation_id int(11) unsigned NOT NULL,
|
|
||||||
version_id int(11) unsigned NOT NULL,
|
|
||||||
trigger_key varchar(255) NOT NULL,
|
|
||||||
status varchar(255) NOT NULL,
|
|
||||||
created_at timestamp NOT NULL,
|
|
||||||
updated_at timestamp NOT NULL,
|
|
||||||
subjects longtext,
|
|
||||||
next_step_id varchar(255),
|
|
||||||
PRIMARY KEY (id),
|
|
||||||
INDEX (automation_id),
|
|
||||||
INDEX (status)
|
|
||||||
);
|
|
||||||
");
|
|
||||||
|
|
||||||
$this->runQuery("
|
|
||||||
CREATE TABLE {$this->prefix}automation_run_logs (
|
|
||||||
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
automation_run_id int(11) unsigned NOT NULL,
|
|
||||||
step_id varchar(255) NOT NULL,
|
|
||||||
status varchar(255) NOT NULL,
|
|
||||||
started_at timestamp NOT NULL,
|
|
||||||
completed_at timestamp NULL DEFAULT NULL,
|
|
||||||
error longtext,
|
|
||||||
data longtext,
|
|
||||||
PRIMARY KEY (id),
|
|
||||||
INDEX (automation_run_id)
|
|
||||||
);
|
|
||||||
");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function deleteSchema(): void {
|
|
||||||
$this->removeOldSchema();
|
|
||||||
$this->runQuery("DROP TABLE IF EXISTS {$this->prefix}automations");
|
|
||||||
$this->runQuery("DROP TABLE IF EXISTS {$this->prefix}automation_runs");
|
|
||||||
$this->runQuery("DROP TABLE IF EXISTS {$this->prefix}automation_run_logs");
|
|
||||||
$this->runQuery("DROP TABLE IF EXISTS {$this->prefix}automation_versions");
|
|
||||||
$this->runQuery("DROP TABLE IF EXISTS {$this->prefix}automation_triggers");
|
|
||||||
|
|
||||||
// clean Action Scheduler data
|
|
||||||
$this->runQuery("
|
|
||||||
DELETE FROM {$this->wpdb->prefix}actionscheduler_claims WHERE claim_id IN (
|
|
||||||
SELECT claim_id FROM {$this->wpdb->prefix}actionscheduler_actions WHERE hook LIKE '%mailpoet/automation%'
|
|
||||||
)
|
|
||||||
");
|
|
||||||
$this->runQuery("
|
|
||||||
DELETE FROM {$this->wpdb->prefix}actionscheduler_logs WHERE action_id IN (
|
|
||||||
SELECT action_id FROM {$this->wpdb->prefix}actionscheduler_actions WHERE hook LIKE '%mailpoet/automation%'
|
|
||||||
)
|
|
||||||
");
|
|
||||||
$this->runQuery("DELETE FROM {$this->wpdb->prefix}actionscheduler_actions WHERE hook LIKE '%mailpoet/automation%'");
|
|
||||||
$this->runQuery("DELETE FROM {$this->wpdb->prefix}actionscheduler_groups WHERE slug = 'mailpoet-automation'");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function hasSchema(): bool {
|
|
||||||
$pattern = $this->wpdb->esc_like("{$this->prefix}automations") . '%';
|
|
||||||
return $this->runQuery("SHOW TABLES LIKE '$pattern'") > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function removeOldSchema(): void {
|
|
||||||
$oldPrefix = $this->wpdb->prefix . 'mailpoet_automation_';
|
|
||||||
$this->runQuery("DROP TABLE IF EXISTS {$oldPrefix}automations");
|
|
||||||
$this->runQuery("DROP TABLE IF EXISTS {$oldPrefix}automation_runs");
|
|
||||||
}
|
|
||||||
|
|
||||||
private function runQuery(string $query): int {
|
|
||||||
$this->wpdb->hide_errors();
|
|
||||||
// It's a private method and all Queries in this class are safe
|
|
||||||
// phpcs:ignore WordPressDotOrg.sniffs.DirectDB.UnescapedDBParameter
|
|
||||||
$result = $this->wpdb->query($query);
|
|
||||||
|
|
||||||
if ($result === false) {
|
|
||||||
throw Exceptions::migrationFailed($this->wpdb->last_error ?: 'Unknown error');
|
|
||||||
}
|
|
||||||
return $result === true ? 0 : (int)$result;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -125,7 +125,6 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
$container->autowire(\MailPoet\Automation\Engine\Engine::class)->setPublic(true);
|
$container->autowire(\MailPoet\Automation\Engine\Engine::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Automation\Engine\Hooks::class)->setPublic(true);
|
$container->autowire(\MailPoet\Automation\Engine\Hooks::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Automation\Engine\Mappers\AutomationMapper::class)->setPublic(true);
|
$container->autowire(\MailPoet\Automation\Engine\Mappers\AutomationMapper::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Automation\Engine\Migrations\Migrator::class)->setPublic(true);
|
|
||||||
$container->autowire(\MailPoet\Automation\Engine\Registry::class)->setPublic(true);
|
$container->autowire(\MailPoet\Automation\Engine\Registry::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Automation\Engine\Storage\AutomationRunStorage::class)->setPublic(true);
|
$container->autowire(\MailPoet\Automation\Engine\Storage\AutomationRunStorage::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Automation\Engine\Storage\AutomationRunLogStorage::class)->setPublic(true);
|
$container->autowire(\MailPoet\Automation\Engine\Storage\AutomationRunLogStorage::class)->setPublic(true);
|
||||||
|
79
mailpoet/lib/Migrations/Migration_20221110_151621.php
Normal file
79
mailpoet/lib/Migrations/Migration_20221110_151621.php
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
<?php declare(strict_types = 1);
|
||||||
|
|
||||||
|
namespace MailPoet\Migrations;
|
||||||
|
|
||||||
|
use MailPoet\Config\Env;
|
||||||
|
use MailPoet\Migrator\Migration;
|
||||||
|
|
||||||
|
class Migration_20221110_151621 extends Migration {
|
||||||
|
public function run(): void {
|
||||||
|
$prefix = Env::$dbPrefix;
|
||||||
|
$charsetCollate = Env::$dbCharsetCollate;
|
||||||
|
|
||||||
|
$this->connection->executeStatement("
|
||||||
|
CREATE TABLE {$prefix}automations (
|
||||||
|
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
name varchar(255) NOT NULL,
|
||||||
|
author bigint NOT NULL,
|
||||||
|
status varchar(255) NOT NULL,
|
||||||
|
created_at timestamp NOT NULL,
|
||||||
|
updated_at timestamp NOT NULL,
|
||||||
|
activated_at timestamp NULL,
|
||||||
|
deleted_at timestamp NULL,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) {$charsetCollate};
|
||||||
|
");
|
||||||
|
|
||||||
|
$this->connection->executeStatement("
|
||||||
|
CREATE TABLE {$prefix}automation_versions (
|
||||||
|
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
automation_id int(11) unsigned NOT NULL,
|
||||||
|
steps longtext,
|
||||||
|
created_at timestamp NOT NULL,
|
||||||
|
updated_at timestamp NOT NULL,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
INDEX (automation_id)
|
||||||
|
) {$charsetCollate};
|
||||||
|
");
|
||||||
|
|
||||||
|
$this->connection->executeStatement("
|
||||||
|
CREATE TABLE {$prefix}automation_triggers (
|
||||||
|
automation_id int(11) unsigned NOT NULL,
|
||||||
|
trigger_key varchar(255),
|
||||||
|
PRIMARY KEY (automation_id, trigger_key)
|
||||||
|
);
|
||||||
|
");
|
||||||
|
|
||||||
|
$this->connection->executeStatement("
|
||||||
|
CREATE TABLE {$prefix}automation_runs (
|
||||||
|
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
automation_id int(11) unsigned NOT NULL,
|
||||||
|
version_id int(11) unsigned NOT NULL,
|
||||||
|
trigger_key varchar(255) NOT NULL,
|
||||||
|
status varchar(255) NOT NULL,
|
||||||
|
created_at timestamp NOT NULL,
|
||||||
|
updated_at timestamp NOT NULL,
|
||||||
|
subjects longtext,
|
||||||
|
next_step_id varchar(255),
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
INDEX (automation_id),
|
||||||
|
INDEX (status)
|
||||||
|
) {$charsetCollate};
|
||||||
|
");
|
||||||
|
|
||||||
|
$this->connection->executeStatement("
|
||||||
|
CREATE TABLE {$prefix}automation_run_logs (
|
||||||
|
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
automation_run_id int(11) unsigned NOT NULL,
|
||||||
|
step_id varchar(255) NOT NULL,
|
||||||
|
status varchar(255) NOT NULL,
|
||||||
|
started_at timestamp NOT NULL,
|
||||||
|
completed_at timestamp NULL DEFAULT NULL,
|
||||||
|
error longtext,
|
||||||
|
data longtext,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
INDEX (automation_run_id)
|
||||||
|
) {$charsetCollate};
|
||||||
|
");
|
||||||
|
}
|
||||||
|
}
|
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace MailPoet\Test\Acceptance;
|
namespace MailPoet\Test\Acceptance;
|
||||||
|
|
||||||
use MailPoet\Automation\Engine\Migrations\Migrator;
|
|
||||||
use MailPoet\DI\ContainerWrapper;
|
use MailPoet\DI\ContainerWrapper;
|
||||||
use MailPoet\Features\FeaturesController;
|
use MailPoet\Features\FeaturesController;
|
||||||
use MailPoet\Test\DataFactories\Features;
|
use MailPoet\Test\DataFactories\Features;
|
||||||
@@ -14,9 +13,6 @@ class ConfirmLeaveWhenUnsavedChangesCest
|
|||||||
$features = new Features();
|
$features = new Features();
|
||||||
$features->withFeatureEnabled(FeaturesController::AUTOMATION);
|
$features->withFeatureEnabled(FeaturesController::AUTOMATION);
|
||||||
$container = ContainerWrapper::getInstance();
|
$container = ContainerWrapper::getInstance();
|
||||||
$migrator = $container->get(Migrator::class);
|
|
||||||
$migrator->deleteSchema();
|
|
||||||
$migrator->createSchema();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function confirmationIsRequiredIfAutomationNotSaved(\AcceptanceTester $i) {
|
public function confirmationIsRequiredIfAutomationNotSaved(\AcceptanceTester $i) {
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
namespace MailPoet\Test\Acceptance;
|
namespace MailPoet\Test\Acceptance;
|
||||||
|
|
||||||
use Facebook\WebDriver\WebDriverKeys;
|
use Facebook\WebDriver\WebDriverKeys;
|
||||||
use MailPoet\Automation\Engine\Migrations\Migrator;
|
|
||||||
use MailPoet\DI\ContainerWrapper;
|
use MailPoet\DI\ContainerWrapper;
|
||||||
use MailPoet\Features\FeaturesController;
|
use MailPoet\Features\FeaturesController;
|
||||||
use MailPoet\Test\DataFactories\Features;
|
use MailPoet\Test\DataFactories\Features;
|
||||||
@@ -16,9 +15,6 @@ class CreateEmailAutomationAndWalkThroughCest
|
|||||||
$features = new Features();
|
$features = new Features();
|
||||||
$features->withFeatureEnabled(FeaturesController::AUTOMATION);
|
$features->withFeatureEnabled(FeaturesController::AUTOMATION);
|
||||||
$container = ContainerWrapper::getInstance();
|
$container = ContainerWrapper::getInstance();
|
||||||
$migrator = $container->get(Migrator::class);
|
|
||||||
$migrator->deleteSchema();
|
|
||||||
$migrator->createSchema();
|
|
||||||
|
|
||||||
$settings = new Settings();
|
$settings = new Settings();
|
||||||
$settings->withCronTriggerMethod('Action Scheduler');
|
$settings->withCronTriggerMethod('Action Scheduler');
|
||||||
|
@@ -5,7 +5,6 @@ namespace MailPoet\Test\Acceptance;
|
|||||||
use MailPoet\Automation\Engine\Data\NextStep;
|
use MailPoet\Automation\Engine\Data\NextStep;
|
||||||
use MailPoet\Automation\Engine\Data\Step;
|
use MailPoet\Automation\Engine\Data\Step;
|
||||||
use MailPoet\Automation\Engine\Data\Automation;
|
use MailPoet\Automation\Engine\Data\Automation;
|
||||||
use MailPoet\Automation\Engine\Migrations\Migrator;
|
|
||||||
use MailPoet\Automation\Engine\Storage\AutomationRunLogStorage;
|
use MailPoet\Automation\Engine\Storage\AutomationRunLogStorage;
|
||||||
use MailPoet\Automation\Engine\Storage\AutomationRunStorage;
|
use MailPoet\Automation\Engine\Storage\AutomationRunStorage;
|
||||||
use MailPoet\Automation\Engine\Storage\AutomationStatisticsStorage;
|
use MailPoet\Automation\Engine\Storage\AutomationStatisticsStorage;
|
||||||
@@ -47,9 +46,6 @@ class SomeoneSubscribesAutomationTriggeredByCheckoutCest
|
|||||||
$features = new Features();
|
$features = new Features();
|
||||||
$features->withFeatureEnabled(FeaturesController::AUTOMATION);
|
$features->withFeatureEnabled(FeaturesController::AUTOMATION);
|
||||||
$this->container = ContainerWrapper::getInstance();
|
$this->container = ContainerWrapper::getInstance();
|
||||||
$migrator = $this->container->get(Migrator::class);
|
|
||||||
$migrator->deleteSchema();
|
|
||||||
$migrator->createSchema();
|
|
||||||
|
|
||||||
$this->settingsFactory = new Settings();
|
$this->settingsFactory = new Settings();
|
||||||
|
|
||||||
|
@@ -6,7 +6,6 @@ use Codeception\Util\Locator;
|
|||||||
use MailPoet\Automation\Engine\Data\NextStep;
|
use MailPoet\Automation\Engine\Data\NextStep;
|
||||||
use MailPoet\Automation\Engine\Data\Step;
|
use MailPoet\Automation\Engine\Data\Step;
|
||||||
use MailPoet\Automation\Engine\Data\Automation;
|
use MailPoet\Automation\Engine\Data\Automation;
|
||||||
use MailPoet\Automation\Engine\Migrations\Migrator;
|
|
||||||
use MailPoet\Automation\Engine\Storage\AutomationRunLogStorage;
|
use MailPoet\Automation\Engine\Storage\AutomationRunLogStorage;
|
||||||
use MailPoet\Automation\Engine\Storage\AutomationRunStorage;
|
use MailPoet\Automation\Engine\Storage\AutomationRunStorage;
|
||||||
use MailPoet\Automation\Engine\Storage\AutomationStorage;
|
use MailPoet\Automation\Engine\Storage\AutomationStorage;
|
||||||
@@ -39,9 +38,6 @@ class UserRegistrationTriggerCest
|
|||||||
$features = new Features();
|
$features = new Features();
|
||||||
$features->withFeatureEnabled(FeaturesController::AUTOMATION);
|
$features->withFeatureEnabled(FeaturesController::AUTOMATION);
|
||||||
$this->container = ContainerWrapper::getInstance();
|
$this->container = ContainerWrapper::getInstance();
|
||||||
$migrator = $this->container->get(Migrator::class);
|
|
||||||
$migrator->deleteSchema();
|
|
||||||
$migrator->createSchema();
|
|
||||||
|
|
||||||
$this->settingsFactory = new Settings();
|
$this->settingsFactory = new Settings();
|
||||||
|
|
||||||
|
@@ -6,7 +6,6 @@ use Codeception\Stub;
|
|||||||
use Helper\WordPressHooks as WPHooksHelper;
|
use Helper\WordPressHooks as WPHooksHelper;
|
||||||
use MailPoet\API\JSON\Response as APIResponse;
|
use MailPoet\API\JSON\Response as APIResponse;
|
||||||
use MailPoet\API\JSON\v1\Setup;
|
use MailPoet\API\JSON\v1\Setup;
|
||||||
use MailPoet\Automation\Engine\Migrations\Migrator as AutomationMigrator;
|
|
||||||
use MailPoet\Config\Activator;
|
use MailPoet\Config\Activator;
|
||||||
use MailPoet\Config\Populator;
|
use MailPoet\Config\Populator;
|
||||||
use MailPoet\Cron\ActionScheduler\ActionScheduler;
|
use MailPoet\Cron\ActionScheduler\ActionScheduler;
|
||||||
@@ -66,6 +65,5 @@ class SetupTest extends \MailPoetTest {
|
|||||||
// Temporarily hotfix a side effect of this test, that is, removing automation feature flag
|
// Temporarily hotfix a side effect of this test, that is, removing automation feature flag
|
||||||
// and tables and not setting them back. This will be removed very soon, before MVP release.
|
// and tables and not setting them back. This will be removed very soon, before MVP release.
|
||||||
$this->diContainer->get(FeatureFlagsController::class)->set(FeaturesController::AUTOMATION, true);
|
$this->diContainer->get(FeatureFlagsController::class)->set(FeaturesController::AUTOMATION, true);
|
||||||
$this->diContainer->get(AutomationMigrator::class)->createSchema();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -4,17 +4,11 @@ namespace MailPoet\REST\Automation;
|
|||||||
|
|
||||||
require_once __DIR__ . '/../Test.php';
|
require_once __DIR__ . '/../Test.php';
|
||||||
|
|
||||||
use MailPoet\Automation\Engine\Migrations\Migrator;
|
|
||||||
use MailPoet\REST\Test;
|
use MailPoet\REST\Test;
|
||||||
|
|
||||||
abstract class AutomationTest extends Test {
|
abstract class AutomationTest extends Test {
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$migrator = $this->diContainer->get(Migrator::class);
|
|
||||||
if ($migrator->hasSchema()) {
|
|
||||||
$migrator->deleteSchema();
|
|
||||||
}
|
|
||||||
$migrator->createSchema();
|
|
||||||
wp_set_current_user(1);
|
wp_set_current_user(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
use Codeception\Stub;
|
use Codeception\Stub;
|
||||||
use MailPoet\Automation\Engine\Engine;
|
use MailPoet\Automation\Engine\Engine;
|
||||||
use MailPoet\Automation\Engine\Hooks;
|
use MailPoet\Automation\Engine\Hooks;
|
||||||
use MailPoet\Automation\Engine\Migrations\Migrator;
|
|
||||||
use MailPoet\Automation\Integrations\MailPoet\MailPoetIntegration;
|
use MailPoet\Automation\Integrations\MailPoet\MailPoetIntegration;
|
||||||
use MailPoet\Cache\TransientCache;
|
use MailPoet\Cache\TransientCache;
|
||||||
use MailPoet\Cron\CronTrigger;
|
use MailPoet\Cron\CronTrigger;
|
||||||
@@ -63,12 +62,7 @@ remove_filter('admin_print_styles', 'wp_resource_hints', 1);
|
|||||||
// enable & initialize automation (this is needed only when behind a feature flag)
|
// enable & initialize automation (this is needed only when behind a feature flag)
|
||||||
$_SERVER['SERVER_NAME'] = '';
|
$_SERVER['SERVER_NAME'] = '';
|
||||||
$container = ContainerWrapper::getInstance();
|
$container = ContainerWrapper::getInstance();
|
||||||
$migrator = $container->get(Migrator::class);
|
|
||||||
$container->get(FeatureFlagsController::class)->set(FeaturesController::AUTOMATION, true);
|
$container->get(FeatureFlagsController::class)->set(FeaturesController::AUTOMATION, true);
|
||||||
if ($migrator->hasSchema()) {
|
|
||||||
$migrator->deleteSchema();
|
|
||||||
}
|
|
||||||
$migrator->createSchema();
|
|
||||||
$action = [$container->get(MailPoetIntegration::class), 'register'];
|
$action = [$container->get(MailPoetIntegration::class), 'register'];
|
||||||
if (!has_action(Hooks::INITIALIZE, $action) && is_callable($action)) {
|
if (!has_action(Hooks::INITIALIZE, $action) && is_callable($action)) {
|
||||||
add_action(Hooks::INITIALIZE, $action);
|
add_action(Hooks::INITIALIZE, $action);
|
||||||
|
Reference in New Issue
Block a user