Files
-Fonu/internal/nginx/syntax_test.go
T

45 lines
948 B
Go
Raw Normal View History

2026-09-23 09:40:59 +08:00
package nginx
import "testing"
func TestValidateConfigSyntax(t *testing.T) {
valid := `server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8080;
}
}`
if err := ValidateConfigSyntax(valid); err != nil {
t.Fatalf("expected valid config: %v", err)
}
cases := []struct {
name string
content string
}{
{"garbage line", "server {\n 1 1\n}\n"},
{"missing semicolon", "server {\n listen 80\n}\n"},
{"unbalanced brace", "server {\n listen 80;\n"},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
if err := ValidateConfigSyntax(tc.content); err == nil {
t.Fatalf("expected error for %q", tc.name)
}
})
}
t.Run("allows comment lines", func(t *testing.T) {
content := `# 规则:测试
server {
# 监听 80
listen 80;
}
# HTTP 跳转
`
if err := ValidateConfigSyntax(content); err != nil {
t.Fatalf("expected comments to pass: %v", err)
}
})
}