package dsl import ( "encoding/json" "strings" "testing" ) func TestParseAndAssemble_OK(t *testing.T) { raw := json.RawMessage(`{"version":"1","nodes":[{"id":"a","kind":"input"}],"edges":[]}`) task, err := ParseAndAssemble(raw) if err != nil { t.Fatalf("合法 DSL 不应报错: %v", err) } if !strings.HasPrefix(task.ID, "task_") { t.Errorf("任务 ID 应以 task_ 前缀, got %q", task.ID) } if string(task.Graph) != string(raw) { t.Error("Graph 应原样透传 DSL") } if task.Meta == nil { t.Error("Meta 应已初始化(供网关注入身份)") } } func TestParseAndAssemble_Errors(t *testing.T) { if _, err := ParseAndAssemble(json.RawMessage(``)); err == nil { t.Error("空 DSL 应报错") } if _, err := ParseAndAssemble(json.RawMessage(`{bad`)); err == nil { t.Error("非法 JSON 应报错") } }