-
Notifications
You must be signed in to change notification settings - Fork 712
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adding tests for detail Summary rendering
- Loading branch information
1 parent
653c679
commit 03d5b65
Showing
2 changed files
with
102 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
package detailed_test | ||
|
||
import ( | ||
"sort" | ||
"testing" | ||
"time" | ||
|
||
"github.com/weaveworks/scope/common/mtime" | ||
"github.com/weaveworks/scope/probe/process" | ||
"github.com/weaveworks/scope/render" | ||
"github.com/weaveworks/scope/render/detailed" | ||
"github.com/weaveworks/scope/render/expected" | ||
"github.com/weaveworks/scope/report" | ||
"github.com/weaveworks/scope/test" | ||
"github.com/weaveworks/scope/test/fixture" | ||
"github.com/weaveworks/scope/test/reflect" | ||
) | ||
|
||
func TestSummaries(t *testing.T) { | ||
{ | ||
// Just a convenient source of some rendered nodes | ||
have := detailed.Summaries(render.ProcessRenderer.Render(fixture.Report)) | ||
// The ids of the processes rendered above | ||
expectedIDs := []string{ | ||
fixture.ClientProcess1NodeID, | ||
fixture.ClientProcess2NodeID, | ||
fixture.ServerProcessNodeID, | ||
fixture.NonContainerProcessNodeID, | ||
expected.UnknownPseudoNode1ID, | ||
expected.UnknownPseudoNode2ID, | ||
render.IncomingInternetID, | ||
render.OutgoingInternetID, | ||
} | ||
sort.Strings(expectedIDs) | ||
|
||
// It should summarize each node | ||
ids := []string{} | ||
for id := range have { | ||
ids = append(ids, id) | ||
} | ||
sort.Strings(ids) | ||
if !reflect.DeepEqual(expectedIDs, ids) { | ||
t.Fatalf("Expected Summaries to have summarized every node in the process renderer: %v, but got %v", expectedIDs, ids) | ||
} | ||
} | ||
|
||
// It should summarize nodes' metrics | ||
{ | ||
t1, t2 := mtime.Now().Add(-1*time.Minute), mtime.Now() | ||
metric := report.MakeMetric().Add(t1, 1).Add(t2, 2) | ||
input := fixture.Report.Copy() | ||
|
||
input.Process.Nodes[fixture.ClientProcess1NodeID] = input.Process.Nodes[fixture.ClientProcess1NodeID].WithMetrics(report.Metrics{process.CPUUsage: metric}) | ||
have := detailed.Summaries(render.ProcessRenderer.Render(input)) | ||
|
||
node, ok := have[fixture.ClientProcess1NodeID] | ||
if !ok { | ||
t.Fatalf("Expected output to have the node we added the metric to") | ||
} | ||
|
||
var row detailed.MetricRow | ||
ok = false | ||
for _, metric := range node.Metrics { | ||
if metric.ID == process.CPUUsage { | ||
row = metric | ||
ok = true | ||
break | ||
} | ||
} | ||
if !ok { | ||
t.Fatalf("Expected node to have the metric we added") | ||
} | ||
|
||
// Our summarized MetricRow | ||
want := detailed.MetricRow{ | ||
ID: process.CPUUsage, | ||
Format: "percent", | ||
Value: 2, | ||
Metric: &report.Metric{ | ||
Samples: nil, | ||
Min: metric.Min, | ||
Max: metric.Max, | ||
First: metric.First, | ||
Last: metric.Last, | ||
}, | ||
} | ||
if !reflect.DeepEqual(want, row) { | ||
t.Fatalf("Expected to have summarized the node's metrics: %s", test.Diff(want, row)) | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters