mirror of
https://github.com/weaveworks/scope.git
synced 2026-02-14 18:09:59 +00:00
This dependency makes it harder to see the structure of the program, and sometimes complicates compilation. Mostly just changing the source of strings that are already exported from the report package. A few new strings have to be moved there, plus the function `IsPauseImageName()`.
69 lines
2.3 KiB
Go
69 lines
2.3 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"
|
|
)
|
|
|
|
func TestPodRenderer(t *testing.T) {
|
|
have := utils.Prune(render.PodRenderer.Render(context.Background(), fixture.Report).Nodes)
|
|
want := utils.Prune(expected.RenderedPods)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
var filterNonKubeSystem = render.Transformers([]render.Transformer{
|
|
render.Complement(render.IsNamespace("kube-system")),
|
|
render.FilterUnconnectedPseudo,
|
|
})
|
|
|
|
func TestPodFilterRenderer(t *testing.T) {
|
|
// tag on containers or pod namespace in the topology and ensure
|
|
// it is filtered out correctly.
|
|
input := fixture.Report.Copy()
|
|
input.Pod.Nodes[fixture.ClientPodNodeID] = input.Pod.Nodes[fixture.ClientPodNodeID].WithLatests(map[string]string{
|
|
report.KubernetesNamespace: "kube-system",
|
|
})
|
|
|
|
have := utils.Prune(render.Render(context.Background(), input, render.PodRenderer, filterNonKubeSystem).Nodes)
|
|
want := utils.Prune(expected.RenderedPods.Copy())
|
|
delete(want, fixture.ClientPodNodeID)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestPodServiceRenderer(t *testing.T) {
|
|
have := utils.Prune(render.PodServiceRenderer.Render(context.Background(), fixture.Report).Nodes)
|
|
want := utils.Prune(expected.RenderedPodServices)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestPodServiceFilterRenderer(t *testing.T) {
|
|
// tag on containers or pod namespace in the topology and ensure
|
|
// it is filtered out correctly.
|
|
input := fixture.Report.Copy()
|
|
input.Service.Nodes[fixture.ServiceNodeID] = input.Service.Nodes[fixture.ServiceNodeID].WithLatests(map[string]string{
|
|
report.KubernetesNamespace: "kube-system",
|
|
})
|
|
|
|
have := utils.Prune(render.Render(context.Background(), input, render.PodServiceRenderer, filterNonKubeSystem).Nodes)
|
|
want := utils.Prune(expected.RenderedPodServices.Copy())
|
|
delete(want, fixture.ServiceNodeID)
|
|
delete(want, render.IncomingInternetID)
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|