Fix tests
[MAILPOET-3525]
This commit is contained in:
@@ -91,7 +91,8 @@ class WorkersFactory {
|
||||
return $this->container->get(SubscriberLinkTokens::class);
|
||||
}
|
||||
|
||||
public function createSubscribersEngagementScoreWorker(): SubscribersEngagementScore {
|
||||
/** @return SubscribersEngagementScore */
|
||||
public function createSubscribersEngagementScoreWorker() {
|
||||
return $this->container->get(SubscribersEngagementScore::class);
|
||||
}
|
||||
|
||||
|
@@ -229,7 +229,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
||||
$container->autowire(\MailPoet\Router\Endpoints\ViewInBrowser::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Router\Endpoints\Track::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Statistics\Track\Clicks::class);
|
||||
$container->autowire(\MailPoet\Statistics\Track\Opens::class);
|
||||
$container->autowire(\MailPoet\Statistics\Track\Opens::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Statistics\Track\WooCommercePurchases::class);
|
||||
$container->autowire(\MailPoet\Statistics\Track\Unsubscribes::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Statistics\StatisticsFormsRepository::class)->setPublic(true);
|
||||
|
@@ -15,8 +15,11 @@ use MailPoet\Services\AuthorizedEmailsController;
|
||||
use MailPoet\Services\Bridge;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\SettingsRepository;
|
||||
use MailPoet\Statistics\StatisticsOpensRepository;
|
||||
use MailPoet\WooCommerce\TransactionalEmails;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
use MailPoetVendor\Carbon\Carbon;
|
||||
use MailPoetVendor\Doctrine\ORM\EntityManager;
|
||||
use MailPoetVendor\Idiorm\ORM;
|
||||
|
||||
class SettingsTest extends \MailPoetTest {
|
||||
@@ -37,6 +40,9 @@ class SettingsTest extends \MailPoetTest {
|
||||
new Bridge,
|
||||
$this->make(AuthorizedEmailsController::class, ['onSettingsSave' => true ]),
|
||||
$this->make(TransactionalEmails::class),
|
||||
WPFunctions::get(),
|
||||
$this->diContainer->get(EntityManager::class),
|
||||
$this->diContainer->get(StatisticsOpensRepository::class),
|
||||
$this->make(ServicesChecker::class, ['isMailPoetAPIKeyPendingApproval' => false])
|
||||
);
|
||||
}
|
||||
@@ -70,6 +76,9 @@ class SettingsTest extends \MailPoetTest {
|
||||
$this->make(Bridge::class, ['onSettingsSave' => Expected::once()]),
|
||||
$this->make(AuthorizedEmailsController::class, ['onSettingsSave' => Expected::once()]),
|
||||
$this->make(TransactionalEmails::class),
|
||||
WPFunctions::get(),
|
||||
$this->diContainer->get(EntityManager::class),
|
||||
$this->diContainer->get(StatisticsOpensRepository::class),
|
||||
$this->make(ServicesChecker::class, ['isMailPoetAPIKeyPendingApproval' => false])
|
||||
);
|
||||
|
||||
@@ -94,6 +103,9 @@ class SettingsTest extends \MailPoetTest {
|
||||
$bridgeMock,
|
||||
new AuthorizedEmailsController($this->settings, $bridgeMock, $this->diContainer->get(NewslettersRepository::class)),
|
||||
$this->make(TransactionalEmails::class),
|
||||
WPFunctions::get(),
|
||||
$this->diContainer->get(EntityManager::class),
|
||||
$this->diContainer->get(StatisticsOpensRepository::class),
|
||||
$this->make(ServicesChecker::class, ['isMailPoetAPIKeyPendingApproval' => false])
|
||||
);
|
||||
|
||||
@@ -112,6 +124,9 @@ class SettingsTest extends \MailPoetTest {
|
||||
$bridgeMock,
|
||||
new AuthorizedEmailsController($this->settings, $bridgeMock, $this->diContainer->get(NewslettersRepository::class)),
|
||||
$this->make(TransactionalEmails::class),
|
||||
WPFunctions::get(),
|
||||
$this->diContainer->get(EntityManager::class),
|
||||
$this->diContainer->get(StatisticsOpensRepository::class),
|
||||
$this->make(ServicesChecker::class)
|
||||
);
|
||||
|
||||
|
@@ -302,6 +302,7 @@ class DaemonHttpRunnerTest extends \MailPoetTest {
|
||||
'createBeamerkWorker' => $worker,
|
||||
'createUnsubscribeTokensWorker' => $worker,
|
||||
'createSubscriberLinkTokensWorker' => $worker,
|
||||
'createSubscribersEngagementScoreWorker' => $worker,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@@ -58,6 +58,7 @@ class DaemonTest extends \MailPoetTest {
|
||||
'createBeamerkWorker' => $this->createSimpleWorkerMock(),
|
||||
'createUnsubscribeTokensWorker' => $this->createSimpleWorkerMock(),
|
||||
'createSubscriberLinkTokensWorker' => $this->createSimpleWorkerMock(),
|
||||
'createSubscribersEngagementScoreWorker' => $this->createSimpleWorkerMock(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
@@ -31,6 +31,7 @@ class StatisticsOpensRepositoryTest extends \MailPoetTest {
|
||||
$this->entityManager->flush();
|
||||
$this->repository->recalculateSubscriberScore($subscriber);
|
||||
$newSubscriber = $this->subscribersRepository->findOneById($subscriber->getId());
|
||||
$this->assertInstanceOf(SubscriberEntity::class, $newSubscriber);
|
||||
expect($newSubscriber->getEngagementScore())->null();
|
||||
expect($newSubscriber->getEngagementScoreUpdatedAt())->notNull();
|
||||
}
|
||||
@@ -42,9 +43,12 @@ class StatisticsOpensRepositoryTest extends \MailPoetTest {
|
||||
$this->entityManager->flush();
|
||||
$this->repository->recalculateSubscriberScore($subscriber);
|
||||
$newSubscriber = $this->subscribersRepository->findOneById($subscriber->getId());
|
||||
$this->assertInstanceOf(SubscriberEntity::class, $newSubscriber);
|
||||
expect($newSubscriber->getEngagementScore())->null();
|
||||
expect($newSubscriber->getEngagementScoreUpdatedAt())->notNull();
|
||||
$scoreUpdatedAt = new CarbonImmutable($newSubscriber->getEngagementScoreUpdatedAt());
|
||||
$updated = $newSubscriber->getEngagementScoreUpdatedAt();
|
||||
$this->assertInstanceOf(\DateTimeInterface::class, $updated);
|
||||
$scoreUpdatedAt = new CarbonImmutable($updated->format('Y-m-d H:i:s'));
|
||||
expect($scoreUpdatedAt->isAfter((new CarbonImmutable())->subMinutes(5)))->true();
|
||||
}
|
||||
|
||||
@@ -71,9 +75,12 @@ class StatisticsOpensRepositoryTest extends \MailPoetTest {
|
||||
$this->repository->recalculateSubscriberScore($subscriber);
|
||||
|
||||
$newSubscriber = $this->subscribersRepository->findOneById($subscriber->getId());
|
||||
expect($newSubscriber->getEngagementScore())->equals(33);
|
||||
$this->assertInstanceOf(SubscriberEntity::class, $newSubscriber);
|
||||
expect($newSubscriber->getEngagementScore())->equals(33, 1);
|
||||
expect($newSubscriber->getEngagementScoreUpdatedAt())->notNull();
|
||||
$scoreUpdatedAt = new CarbonImmutable($newSubscriber->getEngagementScoreUpdatedAt());
|
||||
$updated = $newSubscriber->getEngagementScoreUpdatedAt();
|
||||
$this->assertInstanceOf(\DateTimeInterface::class, $updated);
|
||||
$scoreUpdatedAt = new CarbonImmutable($updated->format('Y-m-d H:i:s'));
|
||||
expect($scoreUpdatedAt->isAfter((new CarbonImmutable())->subMinutes(5)))->true();
|
||||
}
|
||||
|
||||
|
@@ -19,6 +19,7 @@ use MailPoet\Newsletter\Shortcodes\Categories\Link as LinkShortcodeCategory;
|
||||
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Statistics\Track\Clicks;
|
||||
use MailPoet\Statistics\Track\Opens;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
use MailPoet\Tasks\Sending as SendingTask;
|
||||
use MailPoet\Util\Cookies;
|
||||
@@ -89,6 +90,7 @@ class ClicksTest extends \MailPoetTest {
|
||||
$this->settingsController,
|
||||
new Cookies(),
|
||||
$this->diContainer->get(Shortcodes::class),
|
||||
$this->diContainer->get(Opens::class),
|
||||
$this->diContainer->get(LinkShortcodeCategory::class)
|
||||
);
|
||||
}
|
||||
@@ -99,6 +101,7 @@ class ClicksTest extends \MailPoetTest {
|
||||
$this->settingsController,
|
||||
new Cookies(),
|
||||
$this->diContainer->get(Shortcodes::class),
|
||||
$this->diContainer->get(Opens::class),
|
||||
$this->diContainer->get(LinkShortcodeCategory::class),
|
||||
], [
|
||||
'abort' => Expected::exactly(2),
|
||||
@@ -120,6 +123,7 @@ class ClicksTest extends \MailPoetTest {
|
||||
$this->settingsController,
|
||||
new Cookies(),
|
||||
$this->diContainer->get(Shortcodes::class),
|
||||
$this->diContainer->get(Opens::class),
|
||||
$this->diContainer->get(LinkShortcodeCategory::class),
|
||||
], [
|
||||
'redirectToUrl' => null,
|
||||
@@ -135,6 +139,7 @@ class ClicksTest extends \MailPoetTest {
|
||||
$this->settingsController,
|
||||
new Cookies(),
|
||||
$this->diContainer->get(Shortcodes::class),
|
||||
$this->diContainer->get(Opens::class),
|
||||
$this->diContainer->get(LinkShortcodeCategory::class),
|
||||
], [
|
||||
'redirectToUrl' => null,
|
||||
@@ -149,6 +154,7 @@ class ClicksTest extends \MailPoetTest {
|
||||
$this->settingsController,
|
||||
new Cookies(),
|
||||
$this->diContainer->get(Shortcodes::class),
|
||||
$this->diContainer->get(Opens::class),
|
||||
$this->diContainer->get(LinkShortcodeCategory::class),
|
||||
], [
|
||||
'redirectToUrl' => Expected::exactly(1),
|
||||
@@ -161,6 +167,7 @@ class ClicksTest extends \MailPoetTest {
|
||||
$this->settingsController,
|
||||
new Cookies(),
|
||||
$this->diContainer->get(Shortcodes::class),
|
||||
$this->diContainer->get(Opens::class),
|
||||
$this->diContainer->get(LinkShortcodeCategory::class),
|
||||
], [
|
||||
'redirectToUrl' => null,
|
||||
@@ -187,6 +194,7 @@ class ClicksTest extends \MailPoetTest {
|
||||
$this->settingsController,
|
||||
new Cookies(),
|
||||
$this->diContainer->get(Shortcodes::class),
|
||||
$this->diContainer->get(Opens::class),
|
||||
$this->diContainer->get(LinkShortcodeCategory::class),
|
||||
], [
|
||||
'abort' => Expected::exactly(1),
|
||||
|
@@ -14,6 +14,7 @@ use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Models\StatisticsOpens;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Models\Subscriber as SubscriberModel;
|
||||
use MailPoet\Statistics\StatisticsOpensRepository;
|
||||
use MailPoet\Statistics\Track\Opens;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
use MailPoet\Tasks\Sending as SendingTask;
|
||||
@@ -68,11 +69,11 @@ class OpensTest extends \MailPoetTest {
|
||||
'preview' => false,
|
||||
];
|
||||
// instantiate class
|
||||
$this->opens = new Opens();
|
||||
$this->opens = new Opens($this->diContainer->get(StatisticsOpensRepository::class));
|
||||
}
|
||||
|
||||
public function testItReturnsImageWhenTrackDataIsEmpty() {
|
||||
$opens = Stub::make($this->opens, [
|
||||
$opens = Stub::construct($this->opens, [$this->diContainer->get(StatisticsOpensRepository::class)], [
|
||||
'returnResponse' => Expected::exactly(1),
|
||||
], $this);
|
||||
$opens->track(false);
|
||||
@@ -83,7 +84,7 @@ class OpensTest extends \MailPoetTest {
|
||||
$data = $this->trackData;
|
||||
$data->subscriber->setWpUserId(99);
|
||||
$data->preview = true;
|
||||
$opens = Stub::make($this->opens, [
|
||||
$opens = Stub::construct($this->opens, [$this->diContainer->get(StatisticsOpensRepository::class)], [
|
||||
'returnResponse' => null,
|
||||
], $this);
|
||||
$opens->track($data);
|
||||
@@ -95,7 +96,7 @@ class OpensTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItTracksOpenEvent() {
|
||||
$opens = Stub::make($this->opens, [
|
||||
$opens = Stub::construct($this->opens, [$this->diContainer->get(StatisticsOpensRepository::class)], [
|
||||
'returnResponse' => null,
|
||||
], $this);
|
||||
$opens->track($this->trackData);
|
||||
@@ -103,7 +104,7 @@ class OpensTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItDoesNotTrackRepeatedOpenEvents() {
|
||||
$opens = Stub::make($this->opens, [
|
||||
$opens = Stub::construct($this->opens, [$this->diContainer->get(StatisticsOpensRepository::class)], [
|
||||
'returnResponse' => null,
|
||||
], $this);
|
||||
for ($count = 0; $count <= 2; $count++) {
|
||||
@@ -113,7 +114,7 @@ class OpensTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItReturnsImageAfterTracking() {
|
||||
$opens = Stub::make($this->opens, [
|
||||
$opens = Stub::construct($this->opens, [$this->diContainer->get(StatisticsOpensRepository::class)], [
|
||||
'returnResponse' => Expected::exactly(1),
|
||||
], $this);
|
||||
$opens->track($this->trackData);
|
||||
|
Reference in New Issue
Block a user