mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-28 01:31:17 +00:00
Squash of: - use detailed.Summaries to render topology nodes - ban merging nodes of different topologies (they should be mapped) - need to prune parents when mapping node types - render container images by id if they have no name - remove separate render ids and prune parents in NewDerived* - don't render metrics/metadata for groups of nodes - fixing up tests - removing pending unit tests (for mapping.go, for now) - updating experimental dir for RenderableNode removal
76 lines
2.0 KiB
Go
76 lines
2.0 KiB
Go
package detailed_test
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/weaveworks/scope/probe/docker"
|
|
"github.com/weaveworks/scope/render/detailed"
|
|
"github.com/weaveworks/scope/report"
|
|
"github.com/weaveworks/scope/test"
|
|
"github.com/weaveworks/scope/test/fixture"
|
|
)
|
|
|
|
func TestNodeMetadata(t *testing.T) {
|
|
inputs := []struct {
|
|
name string
|
|
node report.Node
|
|
want []detailed.MetadataRow
|
|
}{
|
|
{
|
|
name: "container",
|
|
node: report.MakeNodeWith(map[string]string{
|
|
docker.ContainerID: fixture.ClientContainerID,
|
|
docker.LabelPrefix + "label1": "label1value",
|
|
docker.ContainerState: docker.StateRunning,
|
|
}).WithTopology(report.Container).WithSets(report.EmptySets.
|
|
Add(docker.ContainerIPs, report.MakeStringSet("10.10.10.0/24", "10.10.10.1/24")),
|
|
),
|
|
want: []detailed.MetadataRow{
|
|
{ID: docker.ContainerID, Value: fixture.ClientContainerID, Prime: true},
|
|
{ID: docker.ContainerState, Value: "running", Prime: true},
|
|
{ID: docker.ContainerIPs, Value: "10.10.10.0/24, 10.10.10.1/24"},
|
|
},
|
|
},
|
|
{
|
|
name: "unknown topology",
|
|
node: report.MakeNodeWith(map[string]string{
|
|
docker.ContainerID: fixture.ClientContainerID,
|
|
}).WithTopology("foobar").WithID(fixture.ClientContainerNodeID),
|
|
want: nil,
|
|
},
|
|
}
|
|
for _, input := range inputs {
|
|
have := detailed.NodeMetadata(input.node)
|
|
if !reflect.DeepEqual(input.want, have) {
|
|
t.Errorf("%s: %s", input.name, test.Diff(input.want, have))
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestMetadataRowCopy(t *testing.T) {
|
|
var (
|
|
row = detailed.MetadataRow{
|
|
ID: "id",
|
|
Value: "value",
|
|
Prime: true,
|
|
Datatype: "datatype",
|
|
}
|
|
cp = row.Copy()
|
|
)
|
|
|
|
// copy should be identical
|
|
if !reflect.DeepEqual(row, cp) {
|
|
t.Error(test.Diff(row, cp))
|
|
}
|
|
|
|
// changing the copy should not change the original
|
|
cp.ID = ""
|
|
cp.Value = ""
|
|
cp.Prime = false
|
|
cp.Datatype = ""
|
|
if row.ID != "id" || row.Value != "value" || row.Prime != true || row.Datatype != "datatype" {
|
|
t.Errorf("Expected changing the copy not to modify the original")
|
|
}
|
|
}
|