67 lines · 1.6 KB · Go
RawDownload
package executor import (	"testing" 	"github.com/router-for-me/CLIProxyAPI/v6/internal/thinking") func TestIFlowExecutorParseSuffix(t *testing.T) {	tests := []struct {		name      string		model     string		wantBase  string		wantLevel string	}{		{"no suffix", "glm-4", "glm-4", ""},		{"glm with suffix", "glm-4.1-flash(high)", "glm-4.1-flash", "high"},		{"minimax no suffix", "minimax-m2", "minimax-m2", ""},		{"minimax with suffix", "minimax-m2.1(medium)", "minimax-m2.1", "medium"},	} 	for _, tt := range tests {		t.Run(tt.name, func(t *testing.T) {			result := thinking.ParseSuffix(tt.model)			if result.ModelName != tt.wantBase {				t.Errorf("ParseSuffix(%q).ModelName = %q, want %q", tt.model, result.ModelName, tt.wantBase)			}		})	}} func TestPreserveReasoningContentInMessages(t *testing.T) {	tests := []struct {		name  string		input []byte		want  []byte // nil means output should equal input	}{		{			"non-glm model passthrough",			[]byte(`{"model":"gpt-4","messages":[]}`),			nil,		},		{			"glm model with empty messages",			[]byte(`{"model":"glm-4","messages":[]}`),			nil,		},		{			"glm model preserves existing reasoning_content",			[]byte(`{"model":"glm-4","messages":[{"role":"assistant","content":"hi","reasoning_content":"thinking..."}]}`),			nil,		},	} 	for _, tt := range tests {		t.Run(tt.name, func(t *testing.T) {			got := preserveReasoningContentInMessages(tt.input)			want := tt.want			if want == nil {				want = tt.input			}			if string(got) != string(want) {				t.Errorf("preserveReasoningContentInMessages() = %s, want %s", got, want)			}		})	}}