- Updates statistics SQL query
- Fixes tests + expands coverage - Removes leftover console command
This commit is contained in:
committed by
Tautvidas Sipavičius
parent
18f35b5e91
commit
ae358ce13e
@ -16,7 +16,7 @@ define(
|
||||
MailPoet
|
||||
) {
|
||||
var Link = Router.Link;
|
||||
console.log(MailPoet)
|
||||
|
||||
var columns = [
|
||||
{
|
||||
name: 'subject',
|
||||
|
@ -68,7 +68,7 @@ class Newsletter extends Model {
|
||||
|
||||
function getQueue() {
|
||||
return SendingQueue::where('newsletter_id', $this->id)
|
||||
->whereNotEqual('status', 'scheduled')
|
||||
->whereRaw(('`status` IS NULL OR `status` != "scheduled"'))
|
||||
->orderByDesc('updated_at')
|
||||
->findOne();
|
||||
}
|
||||
@ -103,17 +103,17 @@ class Newsletter extends Model {
|
||||
'count(DISTINCT(opens.id)) as opened, ' .
|
||||
'count(DISTINCT(unsubscribes.id)) as unsubscribed '
|
||||
)
|
||||
->join(
|
||||
->leftOuterJoin(
|
||||
MP_STATISTICS_CLICKS_TABLE,
|
||||
'queues.id = clicks.queue_id',
|
||||
'clicks'
|
||||
)
|
||||
->join(
|
||||
->leftOuterJoin(
|
||||
MP_STATISTICS_OPENS_TABLE,
|
||||
'queues.id = opens.queue_id',
|
||||
'opens'
|
||||
)
|
||||
->join(
|
||||
->leftOuterJoin(
|
||||
MP_STATISTICS_UNSUBSCRIBES_TABLE,
|
||||
'queues.id = unsubscribes.queue_id',
|
||||
'unsubscribes'
|
||||
@ -122,7 +122,6 @@ class Newsletter extends Model {
|
||||
->findOne();
|
||||
}
|
||||
|
||||
|
||||
static function search($orm, $search = '') {
|
||||
return $orm->where_like('subject', '%' . $search . '%');
|
||||
}
|
||||
|
@ -20,7 +20,11 @@ $models = array(
|
||||
'Setting',
|
||||
'Subscriber',
|
||||
'SubscriberCustomField',
|
||||
'SubscriberSegment'
|
||||
'SubscriberSegment',
|
||||
'StatisticsOpens',
|
||||
'StatisticsClicks',
|
||||
'StatisticsNewsletters',
|
||||
'StatisticsUnsubscribes'
|
||||
);
|
||||
$destroy = function ($model) {
|
||||
$class = new \ReflectionClass('\MailPoet\Models\\' . $model);
|
||||
|
@ -6,6 +6,7 @@ use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Models\NewsletterSegment;
|
||||
use MailPoet\Models\NewsletterOptionField;
|
||||
use MailPoet\Models\NewsletterOption;
|
||||
use MailPoet\Models\StatisticsOpens;
|
||||
|
||||
class NewsletterTest extends MailPoetTest {
|
||||
function _before() {
|
||||
@ -89,11 +90,9 @@ class NewsletterTest extends MailPoetTest {
|
||||
function testItCanBeQueued() {
|
||||
$queue = $this->newsletter->getQueue();
|
||||
expect($queue)->false();
|
||||
|
||||
$sending_queue = SendingQueue::create();
|
||||
$sending_queue->newsletter_id = $this->newsletter->id;
|
||||
$sending_queue->save();
|
||||
|
||||
$queue = $this->newsletter->getQueue();
|
||||
expect($queue->id() > 0)->true();
|
||||
}
|
||||
@ -107,6 +106,22 @@ class NewsletterTest extends MailPoetTest {
|
||||
expect($newsletter_segments[1]['name'])->equals('Segment 2');
|
||||
}
|
||||
|
||||
function testItCanHaveStatistics() {
|
||||
$newsletter = $this->newsletter;
|
||||
$sending_queue = SendingQueue::create();
|
||||
$sending_queue->newsletter_id = $this->newsletter->id;
|
||||
$sending_queue->save();
|
||||
$opens = StatisticsOpens::create();
|
||||
$opens->newsletter_id = $this->newsletter->id;
|
||||
$opens->queue_id = $sending_queue->id;
|
||||
$opens->save();
|
||||
$newsletter->queue = $newsletter->getQueue()->asArray();
|
||||
$statistics = $newsletter->getStatistics();
|
||||
expect($statistics->opened)->equals(1);
|
||||
expect($statistics->clicked)->equals(0);
|
||||
expect($statistics->unsubscribed)->equals(0);
|
||||
}
|
||||
|
||||
function testItCanCreateOrUpdate() {
|
||||
$is_created = Newsletter::createOrUpdate(
|
||||
array(
|
||||
@ -281,11 +296,11 @@ class NewsletterTest extends MailPoetTest {
|
||||
}
|
||||
|
||||
function _after() {
|
||||
NewsletterOption::deleteMany();
|
||||
NewsletterOptionField::deleteMany();
|
||||
Newsletter::deleteMany();
|
||||
Segment::deleteMany();
|
||||
NewsletterSegment::deleteMany();
|
||||
SendingQueue::deleteMany();
|
||||
ORM::raw_execute('TRUNCATE ' . NewsletterOption::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . NewsletterOptionField::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . Segment::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . NewsletterSegment::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user