Install writes a fully commented sample env file when no config exists
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user