Merge pull request #706 from weaveworks/656-unconnected

Filter nodes that are only connected to themselves.
This commit is contained in:
Tom Wilkie
2015-12-01 15:45:22 +00:00
2 changed files with 22 additions and 4 deletions

View File

@@ -22,7 +22,8 @@ func (c CustomRenderer) Render(rpt report.Report) RenderableNodes {
}
// ColorConnected colors nodes with the IsConnected key if
// they have edges to or from them.
// they have edges to or from them. Edges to/from yourself
// are not counted here (see #656).
func ColorConnected(r Renderer) Renderer {
return CustomRenderer{
Renderer: r,
@@ -35,9 +36,11 @@ func ColorConnected(r Renderer) Renderer {
continue
}
connected[id] = void
for _, id := range node.Adjacency {
connected[id] = void
for _, adj := range node.Adjacency {
if adj != id {
connected[id] = void
connected[adj] = void
}
}
}

View File

@@ -108,3 +108,18 @@ func TestFilterUnconnectedPesudoNodes(t *testing.T) {
}
}
}
func TestFilterUnconnectedSelf(t *testing.T) {
// Test nodes that are only connected to themselves are filtered.
{
nodes := render.RenderableNodes{
"foo": {ID: "foo", Node: report.MakeNode().WithAdjacent("foo")},
}
renderer := render.FilterUnconnected(mockRenderer{RenderableNodes: nodes})
want := render.RenderableNodes{}
have := renderer.Render(report.MakeReport()).Prune()
if !reflect.DeepEqual(want, have) {
t.Error(test.Diff(want, have))
}
}
}