feat: derive autoresponder schedule from backend
This commit is contained in:
@@ -10,7 +10,7 @@ test('settings validate defaults and external paths', function (): void {
|
||||
'DEFAULT_PLUGIN_LANGUAGE=pl',
|
||||
'DEFAULT_ENABLE=false',
|
||||
'GLOBAL_AUTORESPONDER_TIMEZONE=Europe/Warsaw',
|
||||
'GLOBAL_AUTORESPONDER_SCHEDULE_MODE=exact_hour',
|
||||
'GLOBAL_AUTORESPONDER_BACKEND=exim',
|
||||
'GLOBAL_AUTORESPONDER_REPLY_EVERY_MESSAGE=false',
|
||||
'GLOBAL_AUTORESPONDER_REPEAT_MINUTES=60',
|
||||
'GLOBAL_AUTORESPONDER_DYNAMIC_MAILBOX_SCOPE=true',
|
||||
@@ -23,6 +23,7 @@ test('settings validate defaults and external paths', function (): void {
|
||||
assert_false($settings->defaultEnable());
|
||||
assert_same('Europe/Warsaw', $settings->timezone());
|
||||
assert_same('exact_hour', $settings->scheduleMode());
|
||||
assert_same('exim', $settings->backendMode());
|
||||
assert_same(60, $settings->repeatMinutes());
|
||||
assert_same('/usr/local/hitme_plugins/global-autoresponders/config', Settings::CONFIG_DIR);
|
||||
assert_same('/usr/local/hitme_plugins/global-autoresponders/data', Settings::DATA_DIR);
|
||||
@@ -30,7 +31,7 @@ test('settings validate defaults and external paths', function (): void {
|
||||
|
||||
test('settings reject invalid timezone and schedule mode', function (): void {
|
||||
$path = TEST_TMP . '/bad-settings.conf';
|
||||
test_write($path, "GLOBAL_AUTORESPONDER_TIMEZONE=Not/AZone\nGLOBAL_AUTORESPONDER_SCHEDULE_MODE=bad\n");
|
||||
test_write($path, "GLOBAL_AUTORESPONDER_TIMEZONE=Not/AZone\nGLOBAL_AUTORESPONDER_BACKEND=bad\n");
|
||||
try {
|
||||
Settings::load($path);
|
||||
} catch (InvalidArgumentException $e) {
|
||||
@@ -40,6 +41,19 @@ test('settings reject invalid timezone and schedule mode', function (): void {
|
||||
throw new RuntimeException('Expected invalid settings to fail');
|
||||
});
|
||||
|
||||
test('backend mode derives schedule mode', function (): void {
|
||||
$path = TEST_TMP . '/backend.conf';
|
||||
test_write($path, "GLOBAL_AUTORESPONDER_BACKEND=da\n");
|
||||
$settings = Settings::load($path);
|
||||
assert_same('da', $settings->backendMode());
|
||||
assert_same('directadmin_period', $settings->scheduleMode());
|
||||
|
||||
test_write($path, "GLOBAL_AUTORESPONDER_BACKEND=exim\n");
|
||||
$settings = Settings::load($path);
|
||||
assert_same('exim', $settings->backendMode());
|
||||
assert_same('exact_hour', $settings->scheduleMode());
|
||||
});
|
||||
|
||||
test('directadmin user access follows DEFAULT_ENABLE and per-user overrides', function (): void {
|
||||
$settingsPath = TEST_TMP . '/access.conf';
|
||||
test_write($settingsPath, "DEFAULT_ENABLE=false\n");
|
||||
|
||||
Reference in New Issue
Block a user