package config import ( "strings" "testing" ) func TestSampleEnv(t *testing.T) { sample := SampleEnv(`C:\ProgramData\gpu-turnstile\gpu-turnstile.log`) // Every setting known to Load must appear. for _, name := range []string{ "LISTEN_OLLAMA", "LISTEN_COMFY", "OLLAMA_URL", "COMFY_URL", "WARM_MODEL", "UNLOAD_TIMEOUT", "JOB_TIMEOUT", "LLM_WAIT_TIMEOUT", "LLM_BUSY_MODE", "LLM_BUSY_STATUS", "BUSY_RETRY_AFTER", "LOGLEVEL", "LOG_FORMAT", "LOG_FILE", "UNLOAD_POLL_INTERVAL", "HISTORY_POLL_INTERVAL", "PROBE_TIMEOUT", "FREE_TIMEOUT", "WARM_TIMEOUT", "SHUTDOWN_TIMEOUT", "BACKOFF_INITIAL", "BACKOFF_MAX", "PROMPT_CAPTURE_LIMIT", "AUTO_UPDATE", "UPDATE_INTERVAL", "UPDATE_REPO", "UPDATE_ASSET", } { if !strings.Contains(sample, name+"=") { t.Errorf("sample is missing %s", name) } } // The sample must parse cleanly, and only LOG_FILE is active. values, err := ParseEnvFile(strings.NewReader(sample)) if err != nil { t.Fatalf("sample does not parse: %v", err) } if len(values) != 1 || values["LOG_FILE"] != `C:\ProgramData\gpu-turnstile\gpu-turnstile.log` { t.Fatalf("active values = %v, want only LOG_FILE", values) } // Without a log path everything is commented out. values, err = ParseEnvFile(strings.NewReader(SampleEnv(""))) if err != nil { t.Fatalf("sample without log path does not parse: %v", err) } if len(values) != 0 { t.Fatalf("active values = %v, want none", values) } }