mirror of
https://gitcode.com/JianFeeeee/ModelRouter.git
synced 2026-09-19 16:39:15 +00:00
test(lua): add opencode role normalization test
This commit is contained in:
@ -135,6 +135,39 @@ func TestOpenCodeAdapterFingerprint(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestOpenCodeNormalizesRoles(t *testing.T) {
|
||||
vm := NewVM(freshAdapterDir(t))
|
||||
if err := vm.Start(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer vm.Stop()
|
||||
// zen 上游只接受 system/user/assistant/tool/latest_reminder;
|
||||
// OpenAI 系客户端发 `developer`(Claude Code 还会用 `function`)必须归一化成 system。
|
||||
body := `{"model":"x","messages":[
|
||||
{"role":"developer","content":"you are helpful"},
|
||||
{"role":"system","content":"sys"},
|
||||
{"role":"user","content":"hi"},
|
||||
{"role":"assistant","content":"ok"},
|
||||
{"role":"tool","tool_call_id":"t1","content":"{\"ok\":true}"}
|
||||
]}`
|
||||
out, err := vm.Transform("opencode", "transform_request", body)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if strings.Contains(out, `"developer"`) {
|
||||
t.Fatalf("developer role must be normalized: %s", out)
|
||||
}
|
||||
if !strings.Contains(out, `"system"`) || !strings.Contains(out, `"user"`) {
|
||||
t.Fatalf("allowed roles must survive: %s", out)
|
||||
}
|
||||
if !strings.Contains(out, `"assistant"`) {
|
||||
t.Fatalf("assistant role must survive: %s", out)
|
||||
}
|
||||
if !strings.Contains(out, `"tool"`) {
|
||||
t.Fatalf("tool role must survive: %s", out)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOpenCodeStripsMultiModalParts(t *testing.T) {
|
||||
vm := NewVM(freshAdapterDir(t))
|
||||
if err := vm.Start(); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user