Files
go-sip/internal/ai/hangup_config_test.go
T

40 lines
1.9 KiB
Go

package ai
import "testing"
func TestBindHangupGroups(t *testing.T) {
task, providers := currentFixture(t, "full_ai")
task = changeCurrentAgent(t, task, func(agent map[string]any) {
agent["conversation"].(map[string]any)["hangup_keywords"] = []any{
map[string]any{"name": "挂机1", "triggers": []string{"不需要", "再见"}, "closingRemark": "好的,祝您生活愉快。"},
}
})
if _, err := Bind(task, providers); err != nil {
t.Fatalf("new hangup groups must be accepted: %v", err)
}
}
func TestBindRejectsInvalidHangupGroups(t *testing.T) {
for name, groups := range map[string]any{
"legacy": []string{"再见"},
"missing-name": []any{map[string]any{"triggers": []string{"再见"}, "closingRemark": "再见。"}},
"blank-name": []any{map[string]any{"name": " ", "triggers": []string{"再见"}, "closingRemark": "再见。"}},
"empty-triggers": []any{map[string]any{"name": "挂机1", "triggers": []string{}, "closingRemark": "再见。"}},
"blank-trigger": []any{map[string]any{"name": "挂机1", "triggers": []string{" "}, "closingRemark": "再见。"}},
"missing-remark": []any{map[string]any{"name": "挂机1", "triggers": []string{"再见"}}},
"blank-remark": []any{map[string]any{"name": "挂机1", "triggers": []string{"再见"}, "closingRemark": " \n"}},
"wrong-casing": []any{map[string]any{"name": "挂机1", "triggers": []string{"再见"}, "closing_remark": "再见。"}},
"unknown-field": []any{map[string]any{"name": "挂机1", "triggers": []string{"再见"}, "closingRemark": "再见。", "fallback": true}},
} {
t.Run(name, func(t *testing.T) {
task, providers := currentFixture(t, "full_ai")
task = changeCurrentAgent(t, task, func(agent map[string]any) {
agent["conversation"].(map[string]any)["hangup_keywords"] = groups
})
if _, err := Bind(task, providers); err == nil {
t.Fatal("invalid or removed hangup configuration accepted")
}
})
}
}