Files
2026-06-17 12:06:13 +08:00

71 lines
1.9 KiB
Go

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])
}
}