First Commit
ci / go (push) Waiting to run
ci / go-db (agent) (push) Waiting to run
ci / go-db (config) (push) Waiting to run
ci / go-db (db) (push) Waiting to run
ci / go-db (evidence) (push) Waiting to run
ci / go-db (llmrec) (push) Waiting to run
ci / go-db (server) (push) Waiting to run
web / web (push) Waiting to run
docs / links (push) Canceled after 0s
detections / detections (push) Canceled after 0s
ci / go (push) Waiting to run
ci / go-db (agent) (push) Waiting to run
ci / go-db (config) (push) Waiting to run
ci / go-db (db) (push) Waiting to run
ci / go-db (evidence) (push) Waiting to run
ci / go-db (llmrec) (push) Waiting to run
ci / go-db (server) (push) Waiting to run
web / web (push) Waiting to run
docs / links (push) Canceled after 0s
detections / detections (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package agent
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
// TestChatNowVarRenders verifies the universal {{.Now}} runtime variable: a custom
|
||||
// (chat) agent prompt referencing it renders the live server time each turn, rather
|
||||
// than failing template execution and falling back to DefaultAssistantPrompt.
|
||||
func TestChatNowVarRenders(t *testing.T) {
|
||||
prev := PromptOverride
|
||||
defer func() { PromptOverride = prev }()
|
||||
|
||||
PromptOverride = func(key string) (string, bool) {
|
||||
if key == "tec_benchmark" {
|
||||
return "当前时间:{{.Now}}", true
|
||||
}
|
||||
return "", false
|
||||
}
|
||||
|
||||
out := chatSystem("tec_benchmark", "/app/data", "/tmp/x")
|
||||
if !strings.Contains(out, "当前时间:") {
|
||||
t.Fatalf("custom prompt body missing, likely fell back to default: %q", out)
|
||||
}
|
||||
year := time.Now().Format("2006")
|
||||
if !strings.Contains(out, year) {
|
||||
t.Fatalf("{{.Now}} did not render the live time (want year %s): %q", year, out)
|
||||
}
|
||||
}
|
||||
|
||||
// TestChatDataDirVarRenders verifies the universal {{.DataDir}} runtime variable:
|
||||
// a custom prompt referencing it renders the server data root (s.m.dir), rather
|
||||
// than failing template execution and falling back to DefaultAssistantPrompt.
|
||||
func TestChatDataDirVarRenders(t *testing.T) {
|
||||
prev := PromptOverride
|
||||
defer func() { PromptOverride = prev }()
|
||||
|
||||
PromptOverride = func(key string) (string, bool) {
|
||||
return "数据根目录:{{.DataDir}}", true
|
||||
}
|
||||
|
||||
out := chatSystem("tec_benchmark", "/app/data", "/tmp/x")
|
||||
if !strings.Contains(out, "数据根目录:/app/data") {
|
||||
t.Fatalf("{{.DataDir}} did not render the data root: %q", out)
|
||||
}
|
||||
}
|
||||
|
||||
// TestChatUnknownVarFallsBack verifies an out-of-catalog {{.X}} still degrades
|
||||
// safely to the default assistant prompt (never a half-rendered prompt).
|
||||
func TestChatUnknownVarFallsBack(t *testing.T) {
|
||||
prev := PromptOverride
|
||||
defer func() { PromptOverride = prev }()
|
||||
|
||||
PromptOverride = func(key string) (string, bool) {
|
||||
return "引用了不存在的变量:{{.Bogus}}", true
|
||||
}
|
||||
|
||||
out := chatSystem("whatever", "/app/data", "/tmp/x")
|
||||
if strings.Contains(out, "引用了不存在的变量") {
|
||||
t.Fatalf("broken template should have fallen back, got custom body: %q", out)
|
||||
}
|
||||
if !strings.Contains(out, DefaultAssistantPrompt) {
|
||||
t.Fatalf("expected fallback to DefaultAssistantPrompt, got: %q", out)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user