diff --git a/appui/event.go b/appui/event.go index c34e13ae..8f9567c5 100644 --- a/appui/event.go +++ b/appui/event.go @@ -1,7 +1,9 @@ package appui -type EventHandler func(string) error +//EventCommand type alias for a func to be run by an Actionable +type EventCommand func(string) error +//Actionable interface describes how widgets run commands as a result of an event type Actionable interface { - OnEvent(EventHandler) error + OnEvent(EventCommand) error } diff --git a/appui/swarm_nodes.go b/appui/swarm_nodes.go index e6804ac3..3d300102 100644 --- a/appui/swarm_nodes.go +++ b/appui/swarm_nodes.go @@ -100,7 +100,8 @@ func (s *SwarmNodesWidget) highlightSelectedRow() { s.nodes[s.selectedIndex].Highlighted() } -func (s *SwarmNodesWidget) OnEvent(event EventHandler) error { +//OnEvent runs the given command +func (s *SwarmNodesWidget) OnEvent(event EventCommand) error { return event(s.nodes[s.selectedIndex].node.ID) } diff --git a/appui/task_row_test.go b/appui/task_row_test.go new file mode 100644 index 00000000..d8f5209c --- /dev/null +++ b/appui/task_row_test.go @@ -0,0 +1,51 @@ +package appui + +import ( + "testing" + + "github.com/docker/docker/api/types/swarm" + "github.com/moncho/dry/docker/formatter" +) + +func TestTaskRow(t *testing.T) { + task := swarm.Task{ + ID: "task1", + Annotations: swarm.Annotations{Name: "taskName"}, + Spec: swarm.TaskSpec{}, + } + + ts := formatter.NewTaskStringer(task) + row := NewTaskRow(task) + + if row == nil { + t.Error("TaskRow was not created") + } + + if row.ID.Text != task.ID { + t.Errorf("TaskRow name is not 'test', got %s", row.ID.Text) + } + + if row.Name.Text != task.Name { + t.Errorf("TaskRow name is not 'test', got %s", row.Name.Text) + } + + if row.Image.Text != ts.Image() { + t.Errorf("Unexpected TaskRow image, got %s, expected %s", row.Image.Text, ts.Image()) + } + if row.Node.Text != ts.NodeID() { + t.Errorf("Unexpected TaskRow node, got %s, expected %s", row.Node.Text, ts.NodeID()) + } + if row.DesiredState.Text != ts.DesiredState() { + t.Errorf("Unexpected TaskRow DesiredState, got %s, expected %s", row.DesiredState.Text, ts.DesiredState()) + } + if row.CurrentState.Text != ts.CurrentState() { + t.Errorf("Unexpected TaskRow CurrentState, got %s, expected %s", row.CurrentState.Text, ts.CurrentState()) + } + if row.Error.Text != ts.Error() { + t.Errorf("Unexpected TaskRow error, got %s, expected %s", row.Error.Text, ts.Error()) + } + if row.Ports.Text != ts.Ports() { + t.Errorf("Unexpected TaskRow ports, got %s, expected %s", row.Ports.Text, ts.Ports()) + + } +} diff --git a/appui/tasks.go b/appui/tasks.go index f3f67ead..1c1f2d2b 100644 --- a/appui/tasks.go +++ b/appui/tasks.go @@ -107,7 +107,8 @@ func (s *NodeTasksWidget) highlightSelectedRow() { s.tasks[s.selectedIndex].Highlighted() } -func (s *NodeTasksWidget) OnEvent(event EventHandler) error { +//OnEvent runs the given command +func (s *NodeTasksWidget) OnEvent(event EventCommand) error { return nil }