Merge pull request #1421 from mailpoet/newsletters-opens-export-fix

Fix export of newsletters statistics [MAILPOET-1444]
This commit is contained in:
Michelle Shull
2018-07-10 08:32:32 -04:00
committed by GitHub
2 changed files with 18 additions and 3 deletions

View File

@@ -43,7 +43,7 @@ class StatisticsNewsletters extends Model {
) )
->leftOuterJoin( ->leftOuterJoin(
StatisticsOpens::$_table, StatisticsOpens::$_table,
array('statistics.newsletter_id', '=', 'opens.newsletter_id'), 'statistics.newsletter_id = opens.newsletter_id AND statistics.subscriber_id = opens.subscriber_id',
'opens' 'opens'
) )
->where('statistics.subscriber_id', $subscriber->id()) ->where('statistics.subscriber_id', $subscriber->id())

View File

@@ -88,7 +88,10 @@ class NewslettersExporterTest extends \MailPoetTest {
function testExportOpens() { function testExportOpens() {
$subscriber = Subscriber::createOrUpdate(array( $subscriber = Subscriber::createOrUpdate(array(
'email' => 'user2@with.newsletters', 'email' => 'user21@with.newsletters',
));
$subscriber2 = Subscriber::createOrUpdate(array(
'email' => 'user22@with.newsletters',
)); ));
$newsletter1 = Newsletter::createOrUpdate(array( $newsletter1 = Newsletter::createOrUpdate(array(
'subject' => 'Email Subject1', 'subject' => 'Email Subject1',
@@ -112,7 +115,12 @@ class NewslettersExporterTest extends \MailPoetTest {
'newsletter_id' => $newsletter1->id(), 'newsletter_id' => $newsletter1->id(),
'subscriber_id' => $subscriber->id(), 'subscriber_id' => $subscriber->id(),
'queue_id' => $queue1->id(), 'queue_id' => $queue1->id(),
), array(
'newsletter_id' => $newsletter1->id(),
'subscriber_id' => $subscriber2->id(),
'queue_id' => $queue1->id(),
))); )));
StatisticsNewsletters::createMultiple(array(array( StatisticsNewsletters::createMultiple(array(array(
'newsletter_id' => $newsletter2->id(), 'newsletter_id' => $newsletter2->id(),
'subscriber_id' => $subscriber->id(), 'subscriber_id' => $subscriber->id(),
@@ -124,7 +132,14 @@ class NewslettersExporterTest extends \MailPoetTest {
'queue_id' => $queue1->id(), 'queue_id' => $queue1->id(),
'created_at' => '2017-01-02 12:23:45', 'created_at' => '2017-01-02 12:23:45',
)); ));
$result = $this->exporter->export('user2@with.newsletters'); StatisticsOpens::createOrUpdate(array(
'subscriber_id' => $subscriber2->id(),
'newsletter_id' => $newsletter1->id(),
'queue_id' => $queue1->id(),
'created_at' => '2017-01-02 21:23:45',
));
$result = $this->exporter->export('user21@with.newsletters');
expect(count($result['data']))->equals(2);
expect($result['data'][0]['data'])->contains(array('name' => 'Opened', 'value' => 'Yes')); expect($result['data'][0]['data'])->contains(array('name' => 'Opened', 'value' => 'Yes'));
expect($result['data'][0]['data'])->contains(array('name' => 'Opened at', 'value' => '2017-01-02 12:23:45')); expect($result['data'][0]['data'])->contains(array('name' => 'Opened at', 'value' => '2017-01-02 12:23:45'));
expect($result['data'][1]['data'])->contains(array('name' => 'Opened', 'value' => 'No')); expect($result['data'][1]['data'])->contains(array('name' => 'Opened', 'value' => 'No'));