package runner import ( "testing" "codeberg.org/SquidSE/ClusterCanvas/service/internal/settings" ) func TestResolveItemLibraryAndLocal(t *testing.T) { library := []settings.Action{ { ID: settings.BuiltinActionUptimeID, Name: "Uptime", Kind: settings.ActionKindShell, Body: "uptime", Env: []settings.ActionEnvVar{}, }, } resolved, err := ResolveItem(settings.NodeActionItem{ ID: "i1", Source: settings.ActionItemSourceLibrary, LibraryActionID: settings.BuiltinActionUptimeID, }, library) if err != nil { t.Fatalf("ResolveItem library: %v", err) } if resolved.Name != "Uptime" || resolved.Body != "uptime" { t.Fatalf("resolved = %#v", resolved) } local, err := ResolveItem(settings.NodeActionItem{ ID: "i2", Source: settings.ActionItemSourceLocal, Name: "Echo", Kind: settings.ActionKindShell, Body: "echo hi", Env: []settings.ActionEnvVar{}, }, library) if err != nil { t.Fatalf("ResolveItem local: %v", err) } if local.Name != "Echo" { t.Fatalf("local = %#v", local) } if _, err := ResolveItem(settings.NodeActionItem{ Source: settings.ActionItemSourceLibrary, LibraryActionID: "missing", }, library); err == nil { t.Fatal("expected missing library action error") } }