@@ -0,0 +1,70 @@
|
||||
package conversation
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"aichat/message"
|
||||
)
|
||||
|
||||
func TestCreateWithPresetSavesPresetPrompt(t *testing.T) {
|
||||
store := NewStore(t.TempDir())
|
||||
conv, err := store.CreateWithPreset(" 你是测试助手 ")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if conv.PresetPrompt != "你是测试助手" {
|
||||
t.Fatalf("preset_prompt = %q", conv.PresetPrompt)
|
||||
}
|
||||
loaded, err := store.Get(conv.ID)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if loaded.PresetPrompt != "你是测试助手" {
|
||||
t.Fatalf("loaded preset_prompt = %q", loaded.PresetPrompt)
|
||||
}
|
||||
if len(loaded.Messages) != 0 {
|
||||
t.Fatalf("preset should not be stored in messages: %#v", loaded.Messages)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateKeepsEmptyPresetPrompt(t *testing.T) {
|
||||
store := NewStore(t.TempDir())
|
||||
conv, err := store.Create()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if conv.PresetPrompt != "" {
|
||||
t.Fatalf("preset_prompt = %q", conv.PresetPrompt)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSaveMessagesKeepsPresetPromptAndFiltersPresetMessages(t *testing.T) {
|
||||
store := NewStore(t.TempDir())
|
||||
conv, err := store.CreateWithPreset("你是测试助手")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = SaveMessages(store, conv.ID, []message.ChatMessage{
|
||||
{Role: "system", Content: "你是测试助手", Hidden: true},
|
||||
{Role: "user", Content: "你好"},
|
||||
}, "你好,我在")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
loaded, err := store.Get(conv.ID)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if loaded.PresetPrompt != "你是测试助手" {
|
||||
t.Fatalf("preset_prompt = %q", loaded.PresetPrompt)
|
||||
}
|
||||
if len(loaded.Messages) != 2 {
|
||||
t.Fatalf("messages length = %d: %#v", len(loaded.Messages), loaded.Messages)
|
||||
}
|
||||
if loaded.Messages[0].Role != "user" || loaded.Messages[0].Content != "你好" {
|
||||
t.Fatalf("unexpected first message: %#v", loaded.Messages[0])
|
||||
}
|
||||
if loaded.Messages[1].Role != "assistant" || loaded.Messages[1].Content != "你好,我在" {
|
||||
t.Fatalf("unexpected assistant message: %#v", loaded.Messages[1])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user