mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-18 12:59:31 +00:00
87 lines
3.1 KiB
Go
87 lines
3.1 KiB
Go
package render_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/weaveworks/common/test"
|
|
"github.com/weaveworks/scope/render"
|
|
"github.com/weaveworks/scope/render/expected"
|
|
"github.com/weaveworks/scope/report"
|
|
"github.com/weaveworks/scope/test/fixture"
|
|
"github.com/weaveworks/scope/test/reflect"
|
|
"github.com/weaveworks/scope/test/utils"
|
|
)
|
|
|
|
var (
|
|
filterApplication = render.Transformers([]render.Transformer{
|
|
render.AnyFilterFunc(render.IsPseudoTopology, render.IsApplication),
|
|
render.FilterUnconnectedPseudo,
|
|
})
|
|
filterSystem = render.Transformers([]render.Transformer{
|
|
render.AnyFilterFunc(render.IsPseudoTopology, render.IsSystem),
|
|
render.FilterUnconnectedPseudo,
|
|
})
|
|
)
|
|
|
|
func TestContainerRenderer(t *testing.T) {
|
|
have := utils.Prune(render.ContainerWithImageNameRenderer.Render(context.Background(), fixture.Report).Nodes)
|
|
want := utils.Prune(expected.RenderedContainers)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestContainerFilterRenderer(t *testing.T) {
|
|
// tag on of the containers in the topology and ensure
|
|
// it is filtered out correctly.
|
|
input := fixture.Report.Copy()
|
|
input.Container.Nodes[fixture.ClientContainerNodeID] = input.Container.Nodes[fixture.ClientContainerNodeID].WithLatests(map[string]string{
|
|
report.DockerLabelPrefix + "works.weave.role": "system",
|
|
})
|
|
have := utils.Prune(render.Render(context.Background(), input, render.ContainerWithImageNameRenderer, filterApplication).Nodes)
|
|
want := utils.Prune(expected.RenderedContainers.Copy())
|
|
delete(want, fixture.ClientContainerNodeID)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestContainerHostnameRenderer(t *testing.T) {
|
|
have := utils.Prune(render.Render(context.Background(), fixture.Report, render.ContainerHostnameRenderer, render.Transformers(nil)).Nodes)
|
|
want := utils.Prune(expected.RenderedContainerHostnames)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestContainerHostnameFilterRenderer(t *testing.T) {
|
|
have := utils.Prune(render.Render(context.Background(), fixture.Report, render.ContainerHostnameRenderer, filterSystem).Nodes)
|
|
want := utils.Prune(expected.RenderedContainerHostnames.Copy())
|
|
delete(want, fixture.ClientContainerHostname)
|
|
delete(want, fixture.ServerContainerHostname)
|
|
delete(want, render.IncomingInternetID)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestContainerImageRenderer(t *testing.T) {
|
|
have := utils.Prune(render.Render(context.Background(), fixture.Report, render.ContainerImageRenderer, render.Transformers(nil)).Nodes)
|
|
want := utils.Prune(expected.RenderedContainerImages)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestContainerImageFilterRenderer(t *testing.T) {
|
|
have := utils.Prune(render.Render(context.Background(), fixture.Report, render.ContainerImageRenderer, filterSystem).Nodes)
|
|
want := utils.Prune(expected.RenderedContainerHostnames.Copy())
|
|
delete(want, fixture.ClientContainerHostname)
|
|
delete(want, fixture.ServerContainerHostname)
|
|
delete(want, render.IncomingInternetID)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|