1
0
Fork 0

showClusterView tests

This commit is contained in:
scottashton 2014-05-08 15:16:45 +02:00
parent a97054c20a
commit 31355e7aca
2 changed files with 376 additions and 64 deletions

View File

@ -32,7 +32,6 @@
"frontend/js/templates/collectionsView.ejs",
"frontend/js/templates/databaseView.ejs",
"frontend/js/templates/dbSelectionView.ejs",
"frontend/js/templates/documentSourceView.ejs",
"frontend/js/templates/documentsView.ejs",
"frontend/js/templates/documentView.ejs",
"frontend/js/templates/editListEntryView.ejs",
@ -40,8 +39,6 @@
"frontend/js/templates/foxxActiveView.ejs",
"frontend/js/templates/foxxEditView.ejs",
"frontend/js/templates/foxxInstalledView.ejs",
"frontend/js/templates/foxxListView.ejs",
"frontend/js/templates/foxxMountView.ejs",
"frontend/js/templates/graphManagementView.ejs",
"frontend/js/templates/graphView.ejs",
"frontend/js/templates/graphViewGroupByEntry.ejs",
@ -133,7 +130,6 @@
"frontend/js/collections/arangoLogs.js",
"frontend/js/collections/notificationCollection.js",
"frontend/js/views/_paginationView.js",
"frontend/js/views/aboutView.js",
"frontend/js/views/apiView.js",
"frontend/js/views/appDocumentationView.js",
"frontend/js/views/applicationsView.js",
@ -141,17 +137,13 @@
"frontend/js/views/collectionsView.js",
"frontend/js/views/databaseView.js",
"frontend/js/views/dbSelectionView.js",
"frontend/js/views/documentSourceView.js",
"frontend/js/views/documentsView.js",
"frontend/js/views/documentView.js",
"frontend/js/views/editListEntryView.js",
"frontend/js/views/footerView.js",
"frontend/js/views/foxxActiveListView.js",
"frontend/js/views/foxxActiveView.js",
"frontend/js/views/foxxEditView.js",
"frontend/js/views/foxxInstalledListView.js",
"frontend/js/views/foxxInstalledView.js",
"frontend/js/views/foxxMountView.js",
"frontend/js/views/graphManagementView.js",
"frontend/js/views/graphView.js",
"frontend/js/views/loginView.js",
@ -320,3 +312,4 @@
"lib": "."
}

View File

@ -7,7 +7,7 @@
describe("The ClusterDownView", function () {
var view, serverDummy, arangoDocumentsDummy, statisticsDescriptionDummy,
jqueryDummy,serverDummy2;
jqueryDummy,serverDummy2, dyGraphConfigDummy;
beforeEach(function () {
window.App = {
@ -90,6 +90,34 @@
};
dyGraphConfigDummy = {
getDetailChartConfig: function () {
return {
header: "dummyheader"
};
},
getDashBoardFigures: function () {
return ["a", "b", "c"];
},
getDefaultConfig: function (d) {
return {
header: "dummyheader",
div: "#" + d
};
},
mapStatToFigure: {
a: ["times", "x", "blub"],
d: ["times", "y"],
c: ["times", "z"],
abc: [1]
},
getColors : function () {
},
colors: [1, 2]
};
statisticsDescriptionDummy = {
fetch : function () {
@ -107,7 +135,7 @@
spyOn(window, "StatisticsDescription").andReturn(statisticsDescriptionDummy);
spyOn(statisticsDescriptionDummy, "fetch");
view = new window.ShowClusterView({dygraphConfig : window.dygraphConfig});
view = new window.ShowClusterView({dygraphConfig: dyGraphConfigDummy});
expect(view.interval).toEqual(10000);
expect(view.isUpdating).toEqual(true);
expect(view.knownServers).toEqual([]);
@ -979,69 +1007,360 @@
});
/*
renderPieChart: function(dataset) {
var w = 280;
var h = 160;
var radius = Math.min(w, h) / 2; //change 2 to 1.4. It's hilarious.
var color = d3.scale.category20();
var arc = d3.svg.arc() //each datapoint will create one later.
.outerRadius(radius - 20)
.innerRadius(0);
var pie = d3.layout.pie()
.sort(function (d) {
return d.value;
})
.value(function (d) {
return d.value;
});
d3.select("#clusterGraphs").select("svg").remove();
var pieChartSvg = d3.select("#clusterGraphs").append("svg")
.attr("width", w)
.attr("height", h)
.attr("class", "clusterChart")
.append("g") //someone to transform. Groups data.
.attr("transform", "translate(" + w / 2 + "," + h / 2 + ")");
var arc2 = d3.svg.arc()
.outerRadius(radius-2)
.innerRadius(radius-2);
var slices = pieChartSvg.selectAll(".arc")
.data(pie(dataset))
.enter().append("g")
.attr("class", "slice");
it("assert renderLineChart no remake", function () {
*/
/*jslint unparam: true*//*
spyOn(dyGraphConfigDummy, "getDefaultConfig").andCallThrough();
spyOn(dyGraphConfigDummy, "getColors");
view.hist = {
server1 : {
lastTime : 12345,
2334500 : 1,
2334600 : 2,
2334700 : 3
slices.append("path")
.attr("d", arc)
.style("fill", function (item, i) {
return color(i);
});
*/
/*jslint unparam: false*//*
slices.append("text")
.attr("transform", function(d) { return "translate(" +
arc.centroid(d) + ")"; })
.attr("dy", ".35em")
.style("text-anchor", "middle")
.text(function(d) {
var v = d.data.value / 1000000000;
return v.toFixed(2) + "GB"; });
slices.append("text")
.attr("transform", function(d) { return "translate(" +
arc2.centroid(d) + ")"; })
.attr("dy", ".35em")
.style("text-anchor", "middle")
.text(function(d) { return d.data.key; });
},
renderLineChart: function(remake) {
server2 : {
lastTime : 12345,
2334500 : 2,
2334800 : 2,
2334900 : 5
}
};
var dygraphDummy = {
setSelection : function () {
}
};
spyOn(window, "Dygraph").andReturn(dygraphDummy);
spyOn(dygraphDummy, "setSelection");
view.renderLineChart(false);
expect(dygraphDummy.setSelection).toHaveBeenCalledWith(
false, 'ClusterAverage', true
);
expect(window.Dygraph).toHaveBeenCalledWith(
document.getElementById('lineGraph'),
view.graph.data,
{
header : 'dummyheader',
div : '#clusterAverageRequestTime',
visibility : [ true, false, true ],
labels : [ 'Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)' ],
colors : undefined
}
);
expect(dyGraphConfigDummy.getDefaultConfig).toHaveBeenCalledWith(
"clusterAverageRequestTime"
);
expect(dyGraphConfigDummy.getColors).toHaveBeenCalledWith(
['Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)']
);
expect(view.chartData.labelsNormal).toEqual(
['Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)']
);
expect(view.chartData.labelsShowAll).toEqual(
['Date', 'ClusterAverage', 'server1', 'server2']
);
expect(view.chartData.visibilityNormal).toEqual(
[true, false, true]
);
expect(view.chartData.visibilityShowAll).toEqual(
[true, true, true]
);
});
it("assert renderLineChart with remake", function () {
spyOn(dyGraphConfigDummy, "getDefaultConfig").andCallThrough();
spyOn(dyGraphConfigDummy, "getColors");
view.hist = {
server1 : {
lastTime : 12345,
2334500 : 1,
2334600 : 2,
2334700 : 3
},
server2 : {
lastTime : 12345,
2334500 : 2,
2334800 : 2,
2334900 : 5
}
};
var dygraphDummy = {
setSelection : function () {
}
};
spyOn(window, "Dygraph").andReturn(dygraphDummy);
spyOn(dygraphDummy, "setSelection");
view.renderLineChart(true);
expect(dygraphDummy.setSelection).toHaveBeenCalledWith(
false, 'ClusterAverage', true
);
expect(window.Dygraph).toHaveBeenCalledWith(
document.getElementById('lineGraph'),
view.graph.data,
{
header : 'dummyheader',
labels : [ 'Date', 'ClusterAverage', 'server1', 'server2' ],
colors : undefined,
visibility : [ true, true, true ],
height : 0, width : 0, title : ''
}
);
expect(dyGraphConfigDummy.getDefaultConfig).toHaveBeenCalledWith(
"clusterAverageRequestTime"
);
expect(dyGraphConfigDummy.getColors).toHaveBeenCalledWith(
['Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)']
);
expect(view.chartData.labelsNormal).toEqual(
['Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)']
);
expect(view.chartData.labelsShowAll).toEqual(
['Date', 'ClusterAverage', 'server1', 'server2']
);
expect(view.chartData.visibilityNormal).toEqual(
[true, false, true]
);
expect(view.chartData.visibilityShowAll).toEqual(
[true, true, true]
);
});
it("assert renderLineChart with detailView", function () {
spyOn(dyGraphConfigDummy, "getDefaultConfig").andCallThrough();
spyOn(dyGraphConfigDummy, "getColors");
view.hist = {
server1 : {
lastTime : 12345,
2334500 : 1,
2334600 : 2,
2334700 : 3
},
server2 : {
lastTime : 12345,
2334500 : 2,
2334800 : 2,
2334900 : 5
}
};
var dygraphDummy = {
setSelection : function () {
},
updateOptions : function () {
}
};
spyOn(window, "Dygraph").andReturn(dygraphDummy);
spyOn(dygraphDummy, "setSelection");
spyOn(dygraphDummy, "updateOptions").andCallFake(function (opt) {
expect(opt.labels).toEqual(['Date', 'ClusterAverage (avg)',
'server1', 'server2 (max)']);
expect(opt.visibility).toEqual([true, false, true]);
expect(opt.dateWindow).not.toEqual(undefined);
});
view.renderLineChart(false);
view.renderLineChart(false);
expect(dygraphDummy.setSelection).toHaveBeenCalledWith(
false, 'ClusterAverage', true
);
expect(dygraphDummy.updateOptions).toHaveBeenCalled();
expect(window.Dygraph).toHaveBeenCalledWith(
document.getElementById('lineGraph'),
view.graph.data,
{
header : 'dummyheader',
div : '#clusterAverageRequestTime',
visibility : [ true, false, true ],
labels : [ 'Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)' ],
colors : undefined
}
);
expect(dyGraphConfigDummy.getDefaultConfig).toHaveBeenCalledWith(
"clusterAverageRequestTime"
);
expect(dyGraphConfigDummy.getColors).toHaveBeenCalledWith(
['Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)']
);
expect(view.chartData.labelsNormal).toEqual(
['Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)']
);
expect(view.chartData.labelsShowAll).toEqual(
['Date', 'ClusterAverage', 'server1', 'server2']
);
expect(view.chartData.visibilityNormal).toEqual(
[true, false, true]
);
expect(view.chartData.visibilityShowAll).toEqual(
[true, true, true]
);
});
it("assert renderLineChart with detailView and showAll", function () {
spyOn(dyGraphConfigDummy, "getDefaultConfig").andCallThrough();
spyOn(dyGraphConfigDummy, "getColors");
view.hist = {
server1 : {
lastTime : 12345,
2334500 : 1,
2334600 : 2,
2334700 : 3
},
server2 : {
lastTime : 12345,
2334500 : 2,
2334800 : 2,
2334900 : 5
}
};
var dygraphDummy = {
setSelection : function () {
},
updateOptions : function () {
},
dateWindow_ : [0, 1]
};
spyOn(window, "Dygraph").andReturn(dygraphDummy);
spyOn(dygraphDummy, "setSelection");
spyOn(dygraphDummy, "updateOptions").andCallFake(function (opt) {
expect(opt.labels).toEqual(['Date', 'ClusterAverage',
'server1', 'server2']);
expect(opt.visibility).toEqual([true, true, true]);
expect(opt.dateWindow).not.toEqual(undefined);
});
view.renderLineChart(false);
view.graphShowAll = true;
view.renderLineChart(false);
expect(dygraphDummy.setSelection).toHaveBeenCalledWith(
false, 'ClusterAverage', true
);
expect(dygraphDummy.updateOptions).toHaveBeenCalled();
expect(window.Dygraph).toHaveBeenCalledWith(
document.getElementById('lineGraph'),
view.graph.data,
{
header : 'dummyheader',
div : '#clusterAverageRequestTime',
visibility : [ true, false, true ],
labels : [ 'Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)' ],
colors : undefined
}
);
expect(dyGraphConfigDummy.getDefaultConfig).toHaveBeenCalledWith(
"clusterAverageRequestTime"
);
expect(dyGraphConfigDummy.getColors).toHaveBeenCalledWith(
['Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)']
);
expect(view.chartData.labelsNormal).toEqual(
['Date', 'ClusterAverage (avg)', 'server1', 'server2 (max)']
);
expect(view.chartData.labelsShowAll).toEqual(
['Date', 'ClusterAverage', 'server1', 'server2']
);
expect(view.chartData.visibilityNormal).toEqual(
[true, false, true]
);
expect(view.chartData.visibilityShowAll).toEqual(
[true, true, true]
);
});
/*
renderLineChart: function(remake) {
var self = this;
self.chartData = {
labelsNormal : ['datetime'],