package ai import ( "testing" ) func bailianFixture(t *testing.T) Binding { t.Helper() task, ps := currentFixture(t, "full_ai") task = changeCurrentAgent(t, task, func(a map[string]any) { for _, role := range []string{"asr", "llm", "tts"} { a[role].(map[string]any)["provider_ref"] = "ali_bailian" } a["asr"].(map[string]any)["model"] = "fun-asr-flash-8k-realtime-2026-01-28" a["asr"].(map[string]any)["params"] = map[string]any{"sample_rate": 16000, "format": "pcm", "language": "zh"} a["llm"].(map[string]any)["model"] = "Qwen3.8-Flash" a["tts"].(map[string]any)["model"] = "cosyvoice-v3-flash" a["tts"].(map[string]any)["voice"] = "longanyang" a["tts"].(map[string]any)["params"] = map[string]any{"rate": 1.25, "sample_rate": 16000, "format": "pcm"} }) p := ps["ali_bailian"] p.Credential = "mock-key" ps["ali_bailian"] = p b, err := Bind(task, ps) if err != nil { t.Fatal(err) } return b } func TestTaskModelsShareConnectionOnlyProvider(t *testing.T) { b := bailianFixture(t) if b.ASR.Provider.Code != "ali_bailian" || b.LLM.Provider.Code != "ali_bailian" || b.TTS.Provider.Code != "ali_bailian" || string(b.TTS.Params["rate"]) != "1.25" { t.Fatal("shared connection or opaque params lost") } }