diff --git a/lib/AutomaticEmails/WooCommerce/Events/AbandonedCart.php b/lib/AutomaticEmails/WooCommerce/Events/AbandonedCart.php index c19a5b30da..86bc3f8eda 100644 --- a/lib/AutomaticEmails/WooCommerce/Events/AbandonedCart.php +++ b/lib/AutomaticEmails/WooCommerce/Events/AbandonedCart.php @@ -29,12 +29,18 @@ class AbandonedCart { /** @var AutomaticEmailScheduler */ private $scheduler; - public function __construct() { - $this->wp = WPFunctions::get(); - $this->wooCommerceHelper = new WooCommerceHelper(); - $this->cookies = new Cookies(); - $this->pageVisitTracker = new AbandonedCartPageVisitTracker($this->wp, $this->wooCommerceHelper, $this->cookies); - $this->scheduler = new AutomaticEmailScheduler(); + public function __construct( + WPFunctions $wp, + WooCommerceHelper $wooCommerceHelper, + Cookies $cookies, + AbandonedCartPageVisitTracker $pageVisitTracker, + AutomaticEmailScheduler $scheduler + ) { + $this->wp = $wp; + $this->wooCommerceHelper = $wooCommerceHelper; + $this->cookies = $cookies; + $this->pageVisitTracker = $pageVisitTracker; + $this->scheduler = $scheduler; } public function getEventDetails() { diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index 7dd6c0156b..d4ceaf161d 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -96,6 +96,7 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\AutomaticEmails\WooCommerce\WooCommerce::class)->setPublic(true); $container->autowire(\MailPoet\AutomaticEmails\WooCommerce\WooCommerceEventFactory::class)->setPublic(true); $container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\AbandonedCart::class)->setPublic(true); + $container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\AbandonedCartPageVisitTracker::class)->setPublic(true); $container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\FirstPurchase::class)->setPublic(true); $container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\PurchasedInCategory::class)->setPublic(true); $container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\PurchasedProduct::class)->setPublic(true); @@ -374,6 +375,7 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\Newsletter\Shortcodes\Categories\Newsletter::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Shortcodes\Categories\Subscriber::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository::class)->setPublic(true); + $container->autowire(\MailPoet\Newsletter\Scheduler\AutomaticEmailScheduler::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Scheduler\WelcomeScheduler::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Scheduler\PostNotificationScheduler::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Scheduler\ReEngagementScheduler::class)->setPublic(true); diff --git a/tests/integration/AutomaticEmails/WooCommerce/Events/AbandonedCartTest.php b/tests/integration/AutomaticEmails/WooCommerce/Events/AbandonedCartTest.php index 2712e12658..e002f1b254 100644 --- a/tests/integration/AutomaticEmails/WooCommerce/Events/AbandonedCartTest.php +++ b/tests/integration/AutomaticEmails/WooCommerce/Events/AbandonedCartTest.php @@ -77,7 +77,16 @@ class AbandonedCartTest extends \MailPoetTest { } public function testItGetsEventDetails() { - $event = new AbandonedCart(); + $wp = new WPFunctions(); + $wcHelper = new WooCommerceHelper(); + $cookies = new Cookies(); + $event = new AbandonedCart( + $wp, + $wcHelper, + $cookies, + new AbandonedCartPageVisitTracker($wp, $wcHelper, $cookies), + new AutomaticEmailScheduler($wp) + ); $result = $event->getEventDetails(); expect($result)->notEmpty(); expect($result['slug'])->equals(AbandonedCart::SLUG);