diff --git a/lib/Models/Newsletter.php b/lib/Models/Newsletter.php index 076149c475..433fba7caf 100644 --- a/lib/Models/Newsletter.php +++ b/lib/Models/Newsletter.php @@ -24,7 +24,10 @@ use function MailPoetVendor\array_column; * @property string $type * @property object|array|bool $queue * @property string $hash + * @property string $senderName * @property string $senderAddress + * @property string $replyToName + * @property string $replyToAddress * @property string $status * @property string|object $meta * @property array $options diff --git a/tasks/phpstan/phpstan-baseline-integration-tests.neon b/tasks/phpstan/phpstan-baseline-integration-tests.neon index 94a58546d6..8c5d6ab4ad 100644 --- a/tasks/phpstan/phpstan-baseline-integration-tests.neon +++ b/tasks/phpstan/phpstan-baseline-integration-tests.neon @@ -52,12 +52,7 @@ parameters: - message: "#^Cannot call method asArray\\(\\) on MailPoet\\\\Models\\\\Newsletter\\|false\\.$#" - count: 6 - path: ../../tests/integration/API/JSON/v1/NewslettersTest.php - - - - message: "#^Cannot access property \\$subject on MailPoet\\\\Models\\\\Newsletter\\|false\\.$#" - count: 1 + count: 5 path: ../../tests/integration/API/JSON/v1/NewslettersTest.php - diff --git a/tests/integration/API/JSON/v1/NewslettersTest.php b/tests/integration/API/JSON/v1/NewslettersTest.php index c7fb9121a7..19ec360374 100644 --- a/tests/integration/API/JSON/v1/NewslettersTest.php +++ b/tests/integration/API/JSON/v1/NewslettersTest.php @@ -170,15 +170,31 @@ class NewslettersTest extends \MailPoetTest { public function testItCanSaveANewsletter() { $newsletterData = [ '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); expect($response->status)->equals(APIResponse::STATUS_OK); $updatedNewsletter = Newsletter::findOne($this->newsletter->id); + assert($updatedNewsletter instanceof Newsletter); // PHPStan 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() { diff --git a/tests/integration/Newsletter/NewsletterSaveControllerTest.php b/tests/integration/Newsletter/NewsletterSaveControllerTest.php index d49c2b8930..2dcabfa8d0 100644 --- a/tests/integration/Newsletter/NewsletterSaveControllerTest.php +++ b/tests/integration/Newsletter/NewsletterSaveControllerTest.php @@ -31,11 +31,27 @@ class NewsletterSaveControllerTest extends \MailPoetTest { $newsletter = $this->createNewsletter(NewsletterEntity::TYPE_STANDARD); $newsletterData = [ 'id' => $newsletter->getId(), + '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', ]; $newsletter = $this->saveController->save($newsletterData); + expect($newsletter->getType())->equals('Updated type'); 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() {