优化结构

This commit is contained in:
Yvan
2026-08-27 16:20:37 +08:00
parent 001e39da50
commit 653414a1da
54 changed files with 1257 additions and 3450 deletions
+39
View File
@@ -0,0 +1,39 @@
package config
import (
"os"
"path/filepath"
"strings"
"testing"
)
func TestDocumentPreservesUnknownKeysAndUpdatesHTTPPort(t *testing.T) {
path := filepath.Join(t.TempDir(), "config.yaml")
input := "# keep this comment\nserver:\n http:\n addr: 127.0.0.1:8000\ncustom:\n enabled: true\n"
if err := os.WriteFile(path, []byte(input), 0o600); err != nil {
t.Fatal(err)
}
document, err := OpenDocument(path)
if err != nil {
t.Fatal(err)
}
if err = document.SetServerHTTPPort(9000); err != nil {
t.Fatal(err)
}
if err = document.Set("admin", map[string]any{"router_prefix": "/api"}); err != nil {
t.Fatal(err)
}
if err = document.Save(); err != nil {
t.Fatal(err)
}
loaded, err := os.ReadFile(path)
if err != nil {
t.Fatal(err)
}
text := string(loaded)
for _, want := range []string{"127.0.0.1:9000", "custom:", "enabled: true", "admin:", "router_prefix: /api"} {
if !strings.Contains(text, want) {
t.Fatalf("saved document missing %q:\n%s", want, text)
}
}
}