mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-02 17:50:39 +00:00
Also use same technique to merge the controls, returning the latest set of controls instead of the union.
66 lines
1.6 KiB
Go
66 lines
1.6 KiB
Go
package render_test
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/weaveworks/scope/render"
|
|
"github.com/weaveworks/scope/report"
|
|
"github.com/weaveworks/scope/test"
|
|
)
|
|
|
|
func TestMergeRenderableNodes(t *testing.T) {
|
|
nodes1 := render.RenderableNodes{
|
|
"foo": render.NewRenderableNode("foo"),
|
|
"bar": render.NewRenderableNode("bar"),
|
|
}
|
|
nodes2 := render.RenderableNodes{
|
|
"bar": render.NewRenderableNode("bar"),
|
|
"baz": render.NewRenderableNode("baz"),
|
|
}
|
|
want := (render.RenderableNodes{
|
|
"foo": render.NewRenderableNode("foo"),
|
|
"bar": render.NewRenderableNode("bar"),
|
|
"baz": render.NewRenderableNode("baz"),
|
|
}).Prune()
|
|
have := nodes1.Merge(nodes2).Prune()
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestMergeRenderableNode(t *testing.T) {
|
|
node1 := render.RenderableNode{
|
|
ID: "foo",
|
|
LabelMajor: "",
|
|
LabelMinor: "minor",
|
|
Rank: "",
|
|
Pseudo: false,
|
|
Node: report.MakeNode().WithAdjacent("a1"),
|
|
Origins: report.MakeIDList("o1"),
|
|
}
|
|
node2 := render.RenderableNode{
|
|
ID: "foo",
|
|
LabelMajor: "major",
|
|
LabelMinor: "",
|
|
Rank: "rank",
|
|
Pseudo: false,
|
|
Node: report.MakeNode().WithAdjacent("a2"),
|
|
Origins: report.MakeIDList("o2"),
|
|
}
|
|
want := render.RenderableNode{
|
|
ID: "foo",
|
|
LabelMajor: "major",
|
|
LabelMinor: "minor",
|
|
Rank: "rank",
|
|
Pseudo: false,
|
|
Node: report.MakeNode().WithAdjacent("a1").WithAdjacent("a2"),
|
|
Origins: report.MakeIDList("o1", "o2"),
|
|
EdgeMetadata: report.EdgeMetadata{},
|
|
}.Prune()
|
|
have := node1.Merge(node2).Prune()
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|