mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-04 01:48:22 +08:00
3ca95b294d
* feat: integrate NOFXi agent into dev * Enhance NOFXi agent workflow and diagnostics
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
package agent
|
|
|
|
import "testing"
|
|
|
|
func TestGetSkillDAGForStructuredActions(t *testing.T) {
|
|
tests := []struct {
|
|
skill string
|
|
action string
|
|
}{
|
|
{skill: "trader_management", action: "create"},
|
|
{skill: "trader_management", action: "update_bindings"},
|
|
{skill: "strategy_management", action: "update_config"},
|
|
{skill: "strategy_management", action: "update_prompt"},
|
|
{skill: "model_management", action: "update_status"},
|
|
{skill: "exchange_management", action: "update_name"},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
dag, ok := getSkillDAG(tt.skill, tt.action)
|
|
if !ok {
|
|
t.Fatalf("expected DAG for %s/%s", tt.skill, tt.action)
|
|
}
|
|
if dag.SkillName != tt.skill || dag.Action != tt.action {
|
|
t.Fatalf("unexpected dag identity: %+v", dag)
|
|
}
|
|
if len(dag.Steps) == 0 {
|
|
t.Fatalf("expected DAG steps for %s/%s", tt.skill, tt.action)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestStructuredDAGsHaveTerminalStep(t *testing.T) {
|
|
for _, dag := range listSkillDAGs() {
|
|
hasTerminal := false
|
|
for _, step := range dag.Steps {
|
|
if step.Terminal {
|
|
hasTerminal = true
|
|
break
|
|
}
|
|
}
|
|
if !hasTerminal {
|
|
t.Fatalf("expected terminal step for %s/%s", dag.SkillName, dag.Action)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestStrategyUpdateConfigDAGMatchesCurrentAtomicFlow(t *testing.T) {
|
|
dag, ok := getSkillDAG("strategy_management", "update_config")
|
|
if !ok {
|
|
t.Fatal("missing strategy update_config dag")
|
|
}
|
|
if len(dag.Steps) != 6 {
|
|
t.Fatalf("expected 6 steps, got %d", len(dag.Steps))
|
|
}
|
|
if dag.Steps[0].ID != "resolve_target" {
|
|
t.Fatalf("expected first step resolve_target, got %s", dag.Steps[0].ID)
|
|
}
|
|
if dag.Steps[1].ID != "resolve_config_field" {
|
|
t.Fatalf("expected second step resolve_config_field, got %s", dag.Steps[1].ID)
|
|
}
|
|
if dag.Steps[2].ID != "resolve_config_value" {
|
|
t.Fatalf("expected third step resolve_config_value, got %s", dag.Steps[2].ID)
|
|
}
|
|
if dag.Steps[5].ID != "execute_update" || !dag.Steps[5].Terminal {
|
|
t.Fatalf("expected final terminal execute step, got %+v", dag.Steps[5])
|
|
}
|
|
}
|