feat: engine — template renderer, rule matcher, channel router
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package engine
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRenderer(t *testing.T) {
|
||||
r := NewRenderer()
|
||||
tmpl := "🚀 {{.symbol}} 开仓通知\n价格: {{.price}}"
|
||||
data := map[string]interface{}{"symbol": "BTC", "price": 65000}
|
||||
result, err := r.Render(tmpl, data)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
if !strings.Contains(result, "BTC") || !strings.Contains(result, "65000") {
|
||||
t.Errorf("unexpected output: %s", result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderer_Error(t *testing.T) {
|
||||
r := NewRenderer()
|
||||
_, err := r.Render("{{.nonexistent}}", map[string]interface{}{})
|
||||
if err == nil {
|
||||
t.Error("expected error for missing field, got nil")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user