Fix tests

[MAILPOET-3525]
This commit is contained in:
Pavel Dohnal
2021-04-21 15:08:04 +02:00
committed by Veljko V
parent 9eeeb10415
commit 025d588591
8 changed files with 45 additions and 11 deletions

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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)
);

View File

@@ -302,6 +302,7 @@ class DaemonHttpRunnerTest extends \MailPoetTest {
'createBeamerkWorker' => $worker,
'createUnsubscribeTokensWorker' => $worker,
'createSubscriberLinkTokensWorker' => $worker,
'createSubscribersEngagementScoreWorker' => $worker,
]);
}
}

View File

@@ -58,6 +58,7 @@ class DaemonTest extends \MailPoetTest {
'createBeamerkWorker' => $this->createSimpleWorkerMock(),
'createUnsubscribeTokensWorker' => $this->createSimpleWorkerMock(),
'createSubscriberLinkTokensWorker' => $this->createSimpleWorkerMock(),
'createSubscribersEngagementScoreWorker' => $this->createSimpleWorkerMock(),
]);
}

View File

@@ -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();
}

View File

@@ -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),

View File

@@ -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);