sanitize foreign fields

This commit is contained in:
Yuri Kuznetsov
2025-07-24 10:38:11 +03:00
parent 774143c5e2
commit 0dff4ac6b4
2 changed files with 76 additions and 0 deletions
@@ -34,6 +34,7 @@ use Espo\Core\Record\ServiceContainer;
use Espo\Core\Utils\Config\ConfigWriter;
use Espo\Entities\User;
use Espo\Modules\Crm\Entities\Account;
use Espo\Modules\Crm\Entities\Contact;
use Espo\Modules\Crm\Entities\Meeting;
use Espo\Modules\Crm\Entities\Opportunity;
use Espo\Modules\Crm\Entities\Task;
@@ -221,4 +222,28 @@ class SanitizeTest extends BaseTestCase
$this->assertEquals('2030-12-10', $meeting->get('closeDate'));
}
public function testForeign(): void
{
$account = $this->getEntityManager()->createEntity(Account::ENTITY_TYPE, [
'type' => Account::TYPE_CUSTOMER,
]);
$serviceContainer = $this->getContainer()->getByClass(ServiceContainer::class);
$contactService = $serviceContainer->getByClass(Contact::class);
$data = (object) [
'lastName' => 'C-1',
'accountId' => $account->getId(),
];
$contactService->sanitizeInput($data);
$this->assertEquals(Account::TYPE_CUSTOMER, $data->accountType ?? null);
$data = (object) [
'lastName' => 'C-2',
];
$contactService->sanitizeInput($data);
$this->assertEquals(null, $data->accountType ?? null);
}
}