Rewrite old tests to NewslettersListingRepository tests

[MAILPOET-2645]
This commit is contained in:
Jan Jakeš
2020-03-02 16:22:28 +01:00
committed by Jack Kitterhing
parent 82fe4e6c78
commit cf88ada402
4 changed files with 169 additions and 142 deletions

View File

@ -213,73 +213,6 @@ class NewsletterTest extends \MailPoetTest {
expect($newsletter->deletedAt)->equals('NULL');
}
public function testItCanBeFilteredBySegment() {
// no filter
$newsletters = Newsletter::filter('filterBy')->findArray();
expect($newsletters)->count(1);
// filter by segment
$newsletters = Newsletter::filter('filterBy', [
'filter' => [
'segment' => $this->segment1->id,
],
])->findArray();
expect($newsletters)->count(1);
expect($newsletters[0]['subject'])->equals($this->newsletter->subject);
// remove all segment relations to newsletters
NewsletterSegment::deleteMany();
$newsletters = Newsletter::filter('filterBy', [
'filter' => [
'segment' => $this->segment1->id,
]])->findArray();
expect($newsletters)->isEmpty();
}
public function testItCanBeGrouped() {
$newsletters = Newsletter::filter('groupBy', [
'group' => 'all',
])->findArray();
expect($newsletters)->count(1);
$newsletters = Newsletter::filter('groupBy', [
'group' => 'trash',
])->findArray();
expect($newsletters)->count(0);
$this->newsletter->trash();
$newsletters = Newsletter::filter('groupBy', [
'group' => 'trash',
])->findArray();
expect($newsletters)->count(1);
$newsletters = Newsletter::filter('groupBy', [
'group' => 'all',
])->findArray();
expect($newsletters)->count(0);
$this->newsletter->restore();
$newsletters = Newsletter::filter('groupBy', [
'group' => 'all',
])->findArray();
expect($newsletters)->count(1);
}
public function testItHasSearchFilter() {
Newsletter::createOrUpdate(
[
'subject' => 'search for "pineapple"',
'type' => Newsletter::TYPE_STANDARD,
'body' => 'body',
]);
$newsletter = Newsletter::filter('search', 'pineapple')
->findOne();
expect($newsletter->subject)->contains('pineapple');
}
public function testItCanHaveOptions() {
$newsletterOptions = [
'name' => 'event',
@ -777,79 +710,6 @@ class NewsletterTest extends \MailPoetTest {
expect($duplicateNewsletter->subject)->equals($data['subject']);
}
public function testItCanQueryAutomaticEmailsByGroup() {
$newsletter1 = Newsletter::createOrUpdate(
[
'subject' => 'WooCommerce',
'preheader' => 'Pre Header',
'type' => Newsletter::TYPE_AUTOMATIC,
]
);
$newsletter2 = Newsletter::createOrUpdate(
[
'subject' => 'Unicrons',
'preheader' => 'Pre Header',
'type' => Newsletter::TYPE_AUTOMATIC,
]
);
$newsletterOptionField = NewsletterOptionField::create();
$newsletterOptionField->hydrate(
[
'newsletter_type' => Newsletter::TYPE_AUTOMATIC,
'name' => 'group',
]
);
$newsletterOptionField->save();
$newsletterOption1 = NewsletterOption::create();
$newsletterOption1->hydrate(
[
'newsletter_id' => $newsletter1->id,
'option_field_id' => $newsletterOptionField->id,
'value' => 'woocommerce',
]
);
$newsletterOption1->save();
$newsletterOption2 = NewsletterOption::create();
$newsletterOption2->hydrate(
[
'newsletter_id' => $newsletter2->id,
'option_field_id' => $newsletterOptionField->id,
'value' => 'unicorns',
]
);
$newsletterOption2->save();
$listingsData = [
'params' => [
'type' => Newsletter::TYPE_AUTOMATIC,
],
'sort_by' => 'updated_at',
'sort_order' => 'desc',
'offset' => 0,
'limit' => 20,
'group' => 'all',
'search' => '',
];
// get "woocommerce" emails
$listingsData['params']['group'] = 'woocommerce';
$result = Newsletter::listingQuery($listingsData)->findMany();
expect($result)->count(1);
expect($result[0]->id)->equals($newsletter1->id);
// get "unicorn" emails
$listingsData['params']['group'] = 'unicorns';
$result = Newsletter::listingQuery($listingsData)->findMany();
expect($result)->count(1);
expect($result[0]->id)->equals($newsletter2->id);
// get all automatic emails
unset($listingsData['params']['group']);
$result = Newsletter::listingQuery($listingsData)->findMany();
expect($result)->count(2);
expect($result[0]->id)->equals($newsletter1->id);
expect($result[1]->id)->equals($newsletter2->id);
}
public function testItGetsAndDecodesNewsletterOptionMetaField() {
$newsletter = Newsletter::createOrUpdate(
[