Files
knowledge-governance/internal/qaopsorg/sync_settings_test.go
T

38 lines
1.3 KiB
Go

package qaopsorg
import (
"testing"
"time"
)
func TestDirectorySyncSettingsAreExplicitAndServerOwned(t *testing.T) {
values := map[string]string{}
get := func(k string) string { return values[k] }
off, err := LoadSyncSettings(get)
if err != nil || off.Enabled {
t.Fatal("sync must default off")
}
values["DOBOTAI_OPS_DIRECTORY_SYNC_ENABLED"] = "true"
if _, err = LoadSyncSettings(get); err == nil {
t.Fatal("unbound runtime accepted")
}
values["DOBOTAI_OPS_TENANT_KEY"] = "fixture-tenant"
values["DOBOTAI_OPS_DIRECTORY_SYNC_PYTHON"] = "/usr/bin/python3"
values["DOBOTAI_OPS_DIRECTORY_SYNC_SCRIPT"] = "/app/scripts/qa_ops_directory_sync.py"
values["DOBOTAI_OPS_DIRECTORY_SYNC_RUNTIME_ROOT"] = "/data/weekly-report"
values["DOBOTAI_OPS_DIRECTORY_SYNC_SPOOL_ROOT"] = "/data/private-spool"
ready, err := LoadSyncSettings(get)
if err != nil || !ready.Enabled || ready.Runner.Timeout != 20*time.Minute {
t.Fatal("valid runtime not configured")
}
values["DOBOTAI_OPS_DIRECTORY_SYNC_TIMEOUT"] = "31m"
if _, err = LoadSyncSettings(get); err == nil {
t.Fatal("unbounded source timeout")
}
values["DOBOTAI_OPS_DIRECTORY_SYNC_TIMEOUT"] = "10m"
values["DOBOTAI_OPS_DIRECTORY_SYNC_SCRIPT"] = "relative/script.py"
if _, err = LoadSyncSettings(get); err == nil {
t.Fatal("browser-like relative script accepted")
}
}