39 lines
1.0 KiB
Go
39 lines
1.0 KiB
Go
package squad
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestReadSquadProjection(t *testing.T) {
|
|
dir := t.TempDir()
|
|
squadJSON := `{
|
|
"squad_name": "立项小队",
|
|
"version": "1",
|
|
"agents": [
|
|
{"role": "regulatory", "name": "法规专员", "source": "standard", "responsibilities": ["筛法规"]}
|
|
]
|
|
}`
|
|
if err := os.WriteFile(filepath.Join(dir, "squad.json"), []byte(squadJSON), 0o644); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
ws := `{"task_key":"intake","stage_title":"用户需求收集"}`
|
|
if err := os.WriteFile(filepath.Join(dir, "workspace.json"), []byte(ws), 0o644); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
got, err := ReadSquadProjection(dir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got.TaskKey != "intake" || got.Title != "用户需求收集" {
|
|
t.Fatalf("meta: %+v", got)
|
|
}
|
|
if len(got.Members) != 1 || got.Members[0].Role != "regulatory" || got.Members[0].Name != "法规专员" {
|
|
t.Fatalf("members: %+v", got.Members)
|
|
}
|
|
if _, err := ReadSquadProjection(t.TempDir()); err == nil {
|
|
t.Fatal("missing squad.json must error")
|
|
}
|
|
}
|