38 lines
1.3 KiB
Go
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")
|
|
}
|
|
}
|