Files
global-autoresponder/tests/directadmin_vacation_api_test.php
T
2026-06-02 21:06:25 +02:00

33 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
require_once PLUGIN_ROOT . '/exec/lib/DirectAdminVacationApi.php';
test('directadmin vacation api builds scoped payload for one mailbox', function (): void {
$api = new DirectAdminVacationApi('/usr/local/directadmin/directadmin');
$payload = $api->buildSavePayload('info@example.com', [
'subject' => 'Urlop',
'body' => 'Body',
'start_value' => '2026-06-10|morning',
'end_value' => '2026-06-24|evening',
]);
assert_same('info', $payload['user']);
assert_same('example.com', $payload['domain']);
assert_same('Body', $payload['text']);
assert_same('morning', $payload['starttime']);
assert_same('evening', $payload['endtime']);
});
test('directadmin vacation api detects existing native vacation by mailbox', function (): void {
$api = new DirectAdminVacationApi('/usr/local/directadmin/directadmin', static function (string $owner, string $endpoint, array $payload): string {
assert_same('alice', $owner);
assert_same('CMD_API_EMAIL_VACATION', $endpoint);
assert_same(['domain' => 'example.com'], $payload);
return 'info=starttime%3Dmorning%26text%3DBody&sales=starttime%3Devening';
});
assert_true($api->vacationExists('alice', 'info@example.com'));
assert_false($api->vacationExists('alice', 'new@example.com'));
});