diff --git a/mailpoet/lib/Statistics/StatisticsOpensRepository.php b/mailpoet/lib/Statistics/StatisticsOpensRepository.php index 8e8d78e6b9..e648d8565b 100644 --- a/mailpoet/lib/Statistics/StatisticsOpensRepository.php +++ b/mailpoet/lib/Statistics/StatisticsOpensRepository.php @@ -33,6 +33,7 @@ class StatisticsOpensRepository extends Repository { ->getQuery() ->getSingleScalarResult(); if ($newslettersSentCount < 3) { + $subscriber->setEngagementScore(null); $this->entityManager->flush(); return; } diff --git a/mailpoet/tests/integration/Statistics/StatisticsOpensRepositoryTest.php b/mailpoet/tests/integration/Statistics/StatisticsOpensRepositoryTest.php index da54bc09cf..11c53c5689 100644 --- a/mailpoet/tests/integration/Statistics/StatisticsOpensRepositoryTest.php +++ b/mailpoet/tests/integration/Statistics/StatisticsOpensRepositoryTest.php @@ -78,6 +78,19 @@ class StatisticsOpensRepositoryTest extends \MailPoetTest { expect($averageScoreUpdatedAt->isAfter((new CarbonImmutable())->subMinutes(5)))->true(); } + public function testItResetsSubscriberScoreIfNotEnoughNewsletters() { + $subscriber = $this->createSubscriber(); + $segment = $this->createSegment(); + $this->createSubscriberSegment($subscriber, $segment); + $subscriber->setEngagementScore(5); + $this->entityManager->flush(); + $this->entityManager->refresh($subscriber); + expect($subscriber->getEngagementScore())->equals(5); + $this->repository->recalculateSubscriberScore($subscriber); + $this->entityManager->refresh($subscriber); + expect($subscriber->getEngagementScore())->null(); + } + public function testItUpdatesScore() { $subscriber = $this->createSubscriber(); $segment = $this->createSegment();