mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-07-14 07:57:26 +02:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package multiagent
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"cyberstrike-ai/internal/config"
|
||||
)
|
||||
|
||||
func TestPrepareLatestUserMessageForModel_CapsAndPersistsOversizedInput(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
appCfg := &config.Config{
|
||||
Database: config.DatabaseConfig{Path: dir + "/test.db"},
|
||||
}
|
||||
mw := &config.MultiAgentEinoMiddlewareConfig{
|
||||
LatestUserMessageMaxRunes: 10,
|
||||
LatestUserMessageHeadRunes: 4,
|
||||
LatestUserMessageTailRunes: 4,
|
||||
}
|
||||
input := "abcdefghijklmnopqrst"
|
||||
|
||||
out := prepareLatestUserMessageForModel(input, appCfg, mw, "conv-1", nil)
|
||||
if out == input {
|
||||
t.Fatal("expected oversized input to be replaced with preview")
|
||||
}
|
||||
if !strings.Contains(out, "artifact_path:") {
|
||||
t.Fatalf("expected artifact path in preview: %q", out)
|
||||
}
|
||||
if !strings.Contains(out, "abcd") || !strings.Contains(out, "qrst") {
|
||||
t.Fatalf("expected head and tail preview: %q", out)
|
||||
}
|
||||
if strings.Contains(out, "efghijklmnop") {
|
||||
t.Fatalf("middle content should not remain in model preview: %q", out)
|
||||
}
|
||||
|
||||
path := extractArtifactPathForTest(out)
|
||||
if path == "" {
|
||||
t.Fatalf("could not extract artifact path: %q", out)
|
||||
}
|
||||
body, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
t.Fatalf("read artifact: %v", err)
|
||||
}
|
||||
if string(body) != input {
|
||||
t.Fatalf("artifact body mismatch: %q", body)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPrepareLatestUserMessageForModel_ShortInputUnchanged(t *testing.T) {
|
||||
mw := &config.MultiAgentEinoMiddlewareConfig{LatestUserMessageMaxRunes: 100}
|
||||
input := "short"
|
||||
out := prepareLatestUserMessageForModel(input, nil, mw, "conv-1", nil)
|
||||
if out != input {
|
||||
t.Fatalf("short input should be unchanged: %q", out)
|
||||
}
|
||||
}
|
||||
|
||||
func extractArtifactPathForTest(s string) string {
|
||||
for _, line := range strings.Split(s, "\n") {
|
||||
line = strings.TrimSpace(line)
|
||||
if strings.HasPrefix(line, "artifact_path:") {
|
||||
return strings.TrimSpace(strings.TrimPrefix(line, "artifact_path:"))
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
Reference in New Issue
Block a user