diff --git a/lib/API/MP/v1/CustomFields.php b/lib/API/MP/v1/CustomFields.php index ea76c55955..3082de1e47 100644 --- a/lib/API/MP/v1/CustomFields.php +++ b/lib/API/MP/v1/CustomFields.php @@ -67,7 +67,7 @@ class CustomFields { try { $customField = $this->customFieldsRepository->createOrUpdate($this->customFieldsDataSanitizer->sanitize($data)); } catch (\Exception $e) { - throw new APIException('Failed to save a new subscriber field ' . join(', ', $e->getMessage()), APIException::FAILED_TO_SAVE_SUBSCRIBER_FIELD); + throw new APIException('Failed to save a new subscriber field ' . $e->getMessage(), APIException::FAILED_TO_SAVE_SUBSCRIBER_FIELD); } $customField = $this->customFieldsRepository->findOneById($customField->getId()); if (!$customField instanceof CustomFieldEntity) { diff --git a/tests/integration/API/MP/APITest.php b/tests/integration/API/MP/APITest.php index 366a12d3e1..48d60e9e5e 100644 --- a/tests/integration/API/MP/APITest.php +++ b/tests/integration/API/MP/APITest.php @@ -6,7 +6,6 @@ use Codeception\Stub; use Codeception\Stub\Expected; use Codeception\Util\Fixtures; use MailPoet\API\MP\v1\CustomFields; -use MailPoet\CustomFields\ApiDataSanitizer; use MailPoet\CustomFields\CustomFieldsRepository; use MailPoet\Entities\CustomFieldEntity; use MailPoet\Models\ScheduledTask; diff --git a/tests/integration/API/MP/CustomFieldsTest.php b/tests/integration/API/MP/CustomFieldsTest.php index eaba21b68f..a59f37de05 100644 --- a/tests/integration/API/MP/CustomFieldsTest.php +++ b/tests/integration/API/MP/CustomFieldsTest.php @@ -3,6 +3,7 @@ namespace MailPoet\Test\API\MP; use MailPoet\API\MP\v1\API; +use MailPoet\API\MP\v1\APIException; use MailPoet\CustomFields\CustomFieldsRepository; use MailPoet\Entities\CustomFieldEntity; @@ -80,4 +81,30 @@ class CustomFieldsTest extends \MailPoetTest { ], ]); } + + public function testItCreateNewCustomField() { + $response = $this->api->addSubscriberField([ + 'name' => 'text custom field', + 'type' => 'text', + 'params' => [ + 'required' => '1', + 'label' => 'text custom field', + 'date_type' => 'year_month_day', + ], + ]); + expect($response)->array(); + expect($response)->hasKey('name'); + } + + public function testItFailsToCreateNewCustomField() { + $this->expectException(APIException::class); + $this->api->addSubscriberField([ + 'type' => 'text', + 'params' => [ + 'required' => '1', + 'label' => 'text custom field', + 'date_type' => 'year_month_day', + ], + ]); + } }