Test all supported save fields

[MAILPOET-2900]
This commit is contained in:
Jan Jakeš
2020-05-14 14:49:25 +02:00
committed by Veljko V
parent 688338bcdf
commit 4862d42e8b
4 changed files with 39 additions and 9 deletions

View File

@ -24,7 +24,10 @@ use function MailPoetVendor\array_column;
* @property string $type * @property string $type
* @property object|array|bool $queue * @property object|array|bool $queue
* @property string $hash * @property string $hash
* @property string $senderName
* @property string $senderAddress * @property string $senderAddress
* @property string $replyToName
* @property string $replyToAddress
* @property string $status * @property string $status
* @property string|object $meta * @property string|object $meta
* @property array $options * @property array $options

View File

@ -52,12 +52,7 @@ parameters:
- -
message: "#^Cannot call method asArray\\(\\) on MailPoet\\\\Models\\\\Newsletter\\|false\\.$#" message: "#^Cannot call method asArray\\(\\) on MailPoet\\\\Models\\\\Newsletter\\|false\\.$#"
count: 6 count: 5
path: ../../tests/integration/API/JSON/v1/NewslettersTest.php
-
message: "#^Cannot access property \\$subject on MailPoet\\\\Models\\\\Newsletter\\|false\\.$#"
count: 1
path: ../../tests/integration/API/JSON/v1/NewslettersTest.php path: ../../tests/integration/API/JSON/v1/NewslettersTest.php
- -

View File

@ -170,15 +170,31 @@ class NewslettersTest extends \MailPoetTest {
public function testItCanSaveANewsletter() { public function testItCanSaveANewsletter() {
$newsletterData = [ $newsletterData = [
'id' => $this->newsletter->id, 'id' => $this->newsletter->id,
'subject' => 'My Updated Newsletter', 'type' => 'Updated type',
'subject' => 'Updated subject',
'preheader' => 'Updated preheader',
'body' => '{"value": "Updated body"}',
'sender_name' => 'Updated sender name',
'sender_address' => 'Updated sender address',
'reply_to_name' => 'Updated reply-to name',
'reply_to_address' => 'Updated reply-to address',
'ga_campaign' => 'Updated GA campaign',
]; ];
$response = $this->endpoint->save($newsletterData); $response = $this->endpoint->save($newsletterData);
expect($response->status)->equals(APIResponse::STATUS_OK); expect($response->status)->equals(APIResponse::STATUS_OK);
$updatedNewsletter = Newsletter::findOne($this->newsletter->id); $updatedNewsletter = Newsletter::findOne($this->newsletter->id);
assert($updatedNewsletter instanceof Newsletter); // PHPStan
expect($response->data)->equals($updatedNewsletter->asArray()); expect($response->data)->equals($updatedNewsletter->asArray());
expect($updatedNewsletter->subject)->equals('My Updated Newsletter'); expect($updatedNewsletter->type)->equals('Updated type');
expect($updatedNewsletter->subject)->equals('Updated subject');
expect($updatedNewsletter->preheader)->equals('Updated preheader');
expect($updatedNewsletter->body)->equals('{"value":"Updated body"}');
expect($updatedNewsletter->senderName)->equals('Updated sender name');
expect($updatedNewsletter->senderAddress)->equals('Updated sender address');
expect($updatedNewsletter->replyToName)->equals('Updated reply-to name');
expect($updatedNewsletter->replyToAddress)->equals('Updated reply-to address');
expect($updatedNewsletter->gaCampaign)->equals('Updated GA campaign');
} }
public function testItReturnsErrorIfSubscribersLimitReached() { public function testItReturnsErrorIfSubscribersLimitReached() {

View File

@ -31,11 +31,27 @@ class NewsletterSaveControllerTest extends \MailPoetTest {
$newsletter = $this->createNewsletter(NewsletterEntity::TYPE_STANDARD); $newsletter = $this->createNewsletter(NewsletterEntity::TYPE_STANDARD);
$newsletterData = [ $newsletterData = [
'id' => $newsletter->getId(), 'id' => $newsletter->getId(),
'type' => 'Updated type',
'subject' => 'Updated subject', 'subject' => 'Updated subject',
'preheader' => 'Updated preheader',
'body' => '{"value": "Updated body"}',
'sender_name' => 'Updated sender name',
'sender_address' => 'Updated sender address',
'reply_to_name' => 'Updated reply-to name',
'reply_to_address' => 'Updated reply-to address',
'ga_campaign' => 'Updated GA campaign',
]; ];
$newsletter = $this->saveController->save($newsletterData); $newsletter = $this->saveController->save($newsletterData);
expect($newsletter->getType())->equals('Updated type');
expect($newsletter->getSubject())->equals('Updated subject'); expect($newsletter->getSubject())->equals('Updated subject');
expect($newsletter->getPreheader())->equals('Updated preheader');
expect($newsletter->getBody())->equals(['value' => 'Updated body']);
expect($newsletter->getSenderName())->equals('Updated sender name');
expect($newsletter->getSenderAddress())->equals('Updated sender address');
expect($newsletter->getReplyToName())->equals('Updated reply-to name');
expect($newsletter->getReplyToAddress())->equals('Updated reply-to address');
expect($newsletter->getGaCampaign())->equals('Updated GA campaign');
} }
public function testItDoesNotRerenderPostNotificationsUponUpdate() { public function testItDoesNotRerenderPostNotificationsUponUpdate() {