37 lines
1.5 KiB
Go
37 lines
1.5 KiB
Go
package app
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"infinite-canvas/backend/internal/model"
|
|
)
|
|
|
|
func TestCanvasIntelligenceUsesPersistedCanvasProject(t *testing.T) {
|
|
s, db, _, _ := creationTestService(t)
|
|
if err := db.Create(&model.CanvasProject{
|
|
ID: "intelligence-canvas",
|
|
UserID: "user",
|
|
Title: "智能测试画布",
|
|
PayloadJSON: `{"description":"从持久化文档读取","nodes":[
|
|
{"id":"n1","type":"text","title":"故事主题","content":"故事主题内容","position":{"x":10,"y":20}},
|
|
{"id":"n2","type":"task","title":"下一步","parentId":"n1","metadata":{"status":"todo"}}
|
|
],"connections":[{"fromNodeId":"n1","toNodeId":"n2","type":"flow","label":"推进"}]}`,
|
|
}).Error; err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
context, err := s.NewCanvasIntelligence().BuildEnhancedCanvasContext(t.Context(), "user", "intelligence-canvas", []string{"n1"})
|
|
if err != nil {
|
|
t.Fatalf("build persisted canvas intelligence: %v", err)
|
|
}
|
|
if context.Name != "智能测试画布" || context.Description != "从持久化文档读取" {
|
|
t.Fatalf("unexpected canvas identity: %#v", context)
|
|
}
|
|
if context.Snapshot.TotalNodes != 2 || len(context.Snapshot.FocusNodes) != 1 || len(context.Snapshot.ContextNodes) != 1 {
|
|
t.Fatalf("unexpected node snapshot: %#v", context.Snapshot)
|
|
}
|
|
if len(context.Snapshot.Relationships) == 0 || context.Snapshot.Relationships[0].From != "n1" || context.Snapshot.Relationships[0].To != "n2" {
|
|
t.Fatalf("persisted connection was not projected: %#v", context.Snapshot.Relationships)
|
|
}
|
|
}
|