Reset engagement score for inactive subscribers
If someone hasn't received at least 3 emails in the last year, we can't trust that their level of engagement would be the same now as it was over a year ago. MAILPOET-5410
This commit is contained in:
committed by
Aschepikov
parent
f8e0ba118c
commit
99630f85aa
@@ -33,6 +33,7 @@ class StatisticsOpensRepository extends Repository {
|
|||||||
->getQuery()
|
->getQuery()
|
||||||
->getSingleScalarResult();
|
->getSingleScalarResult();
|
||||||
if ($newslettersSentCount < 3) {
|
if ($newslettersSentCount < 3) {
|
||||||
|
$subscriber->setEngagementScore(null);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -78,6 +78,19 @@ class StatisticsOpensRepositoryTest extends \MailPoetTest {
|
|||||||
expect($averageScoreUpdatedAt->isAfter((new CarbonImmutable())->subMinutes(5)))->true();
|
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() {
|
public function testItUpdatesScore() {
|
||||||
$subscriber = $this->createSubscriber();
|
$subscriber = $this->createSubscriber();
|
||||||
$segment = $this->createSegment();
|
$segment = $this->createSegment();
|
||||||
|
Reference in New Issue
Block a user