fix: match directadmin vacation controls

This commit is contained in:
Marek Miklewicz
2026-06-03 09:21:51 +02:00
parent 0617798821
commit 9174d62706
12 changed files with 176 additions and 53 deletions
+20 -6
View File
@@ -13,22 +13,36 @@ test('directadmin vacation api builds scoped payload for one mailbox', function
$payload = $api->buildSavePayload('info@example.com', [
'subject_prefix' => 'Urlop',
'reply_every_message' => false,
'repeat_minutes' => 1440,
'repeat_minutes' => 1,
'body' => 'Body',
'start_value' => '2026-06-10|morning',
'end_value' => '2026-06-24|evening',
'start_value' => '2026-06-10T00:00',
'end_value' => '2026-06-24T23:59',
]);
assert_same('info', $payload['user']);
assert_same('example.com', $payload['domain']);
assert_same('Body', $payload['text']);
assert_same('Urlop', $payload['subject']);
assert_same('1d', $payload['reply_once_time']);
assert_same('1m', $payload['reply_once_time']);
assert_false(isset($payload['email']));
assert_false(isset($payload['subject_prefix']));
assert_false(isset($payload['reply_frequency']));
assert_same('morning', $payload['starttime']);
assert_same('evening', $payload['endtime']);
assert_same('00:00', $payload['starttime']);
assert_same('23:59', $payload['endtime']);
});
test('directadmin vacation api maps every-message legacy rules to one minute minimum', function (): void {
$api = new DirectAdminVacationApi('/usr/local/directadmin/directadmin');
$payload = $api->buildSavePayload('info@example.com', [
'subject_prefix' => 'Urlop',
'reply_every_message' => true,
'repeat_minutes' => 0,
'body' => 'Body',
'start_value' => '2026-06-10T00:00',
'end_value' => '2026-06-24T23:59',
]);
assert_same('1m', $payload['reply_once_time']);
});
test('directadmin vacation api reports http error response bodies', function (): void {