summaryrefslogtreecommitdiff
path: root/internal/lsp/chat_history_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/lsp/chat_history_test.go')
-rw-r--r--internal/lsp/chat_history_test.go46
1 files changed, 28 insertions, 18 deletions
diff --git a/internal/lsp/chat_history_test.go b/internal/lsp/chat_history_test.go
index 0e9fed5..b1cae80 100644
--- a/internal/lsp/chat_history_test.go
+++ b/internal/lsp/chat_history_test.go
@@ -3,25 +3,35 @@ package lsp
import "testing"
func TestStripTrailingTrigger(t *testing.T) {
- if got := stripTrailingTrigger("what?"); got != "what" { t.Fatalf("should remove trailing ?") }
- if got := stripTrailingTrigger("what?>"); got != "what?" { t.Fatalf("should drop trailing > when preceded by ?") }
- if got := stripTrailingTrigger("ok!>"); got != "ok!" { t.Fatalf("should drop > after !") }
- if got := stripTrailingTrigger("note:>"); got != "note:" { t.Fatalf("should drop > after :") }
- if got := stripTrailingTrigger("go;>"); got != "go;" { t.Fatalf("should drop > after ;") }
+ if got := stripTrailingTrigger("what?"); got != "what" {
+ t.Fatalf("should remove trailing ?")
+ }
+ if got := stripTrailingTrigger("what?>"); got != "what?" {
+ t.Fatalf("should drop trailing > when preceded by ?")
+ }
+ if got := stripTrailingTrigger("ok!>"); got != "ok!" {
+ t.Fatalf("should drop > after !")
+ }
+ if got := stripTrailingTrigger("note:>"); got != "note:" {
+ t.Fatalf("should drop > after :")
+ }
+ if got := stripTrailingTrigger("go;>"); got != "go;" {
+ t.Fatalf("should drop > after ;")
+ }
}
func TestBuildChatHistory_OrderAndLimit(t *testing.T) {
- s := newTestServer()
- uri := "file:///chat.txt"
- // Conversation: q1, > a1, blank, q2, > a2 lines, then current prompt
- doc := "q1\n> a1\n\nq2\n> a2\n\n"
- s.setDocument(uri, doc)
- msgs := s.buildChatHistory(uri, 5, "q3")
- // Expect: user q1, assistant a1, user q2, assistant a2, user q3
- if len(msgs) != 5 || msgs[0].Role != "user" || msgs[1].Role != "assistant" || msgs[2].Role != "user" || msgs[3].Role != "assistant" || msgs[4].Role != "user" {
- t.Fatalf("unexpected roles: %+v", msgs)
- }
- if msgs[0].Content != "q1" || msgs[1].Content != "a1" || msgs[2].Content != "q2" || msgs[3].Content != "a2" || msgs[4].Content != "q3" {
- t.Fatalf("unexpected contents: %+v", msgs)
- }
+ s := newTestServer()
+ uri := "file:///chat.txt"
+ // Conversation: q1, > a1, blank, q2, > a2 lines, then current prompt
+ doc := "q1\n> a1\n\nq2\n> a2\n\n"
+ s.setDocument(uri, doc)
+ msgs := s.buildChatHistory(uri, 5, "q3")
+ // Expect: user q1, assistant a1, user q2, assistant a2, user q3
+ if len(msgs) != 5 || msgs[0].Role != "user" || msgs[1].Role != "assistant" || msgs[2].Role != "user" || msgs[3].Role != "assistant" || msgs[4].Role != "user" {
+ t.Fatalf("unexpected roles: %+v", msgs)
+ }
+ if msgs[0].Content != "q1" || msgs[1].Content != "a1" || msgs[2].Content != "q2" || msgs[3].Content != "a2" || msgs[4].Content != "q3" {
+ t.Fatalf("unexpected contents: %+v", msgs)
+ }
}