feat: implement YAML-based configuration, .env support, and customizable prompt templates for AI analysis
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestConfigLoadEnvAndAppConfig(t *testing.T) {
|
||||
tempDir := t.TempDir()
|
||||
envPath := filepath.Join(tempDir, ".env")
|
||||
configYAMLPath := filepath.Join(tempDir, "config.yaml")
|
||||
|
||||
_ = os.WriteFile(envPath, []byte("TEST_SECRET_KEY=12345\nDEEPSEEK_API_KEY=test-sk-key\n"), 0644)
|
||||
_ = os.WriteFile(configYAMLPath, []byte(`
|
||||
server:
|
||||
port: "9090"
|
||||
log_level: "debug"
|
||||
ai_trigger:
|
||||
analysis_threshold: 35.0
|
||||
prompts:
|
||||
system_prompt_path: "sys.txt"
|
||||
`), 0644)
|
||||
|
||||
LoadEnvFile(envPath)
|
||||
if os.Getenv("TEST_SECRET_KEY") != "12345" {
|
||||
t.Errorf("expected TEST_SECRET_KEY to be 12345, got %q", os.Getenv("TEST_SECRET_KEY"))
|
||||
}
|
||||
|
||||
cfg := &Config{
|
||||
Port: "8080",
|
||||
LogLevel: "info",
|
||||
AppConfig: configYAMLPath,
|
||||
}
|
||||
cfg.Normalize()
|
||||
|
||||
if cfg.Port != "9090" {
|
||||
t.Errorf("expected port 9090 from config.yaml, got %s", cfg.Port)
|
||||
}
|
||||
if cfg.AnalysisThreshold != 35.0 {
|
||||
t.Errorf("expected analysis threshold 35.0, got %f", cfg.AnalysisThreshold)
|
||||
}
|
||||
if cfg.LLMProvider != "deepseek" {
|
||||
t.Errorf("expected LLMProvider to be deepseek, got %s", cfg.LLMProvider)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user