forked from dc-js/dc.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata-table-test.js
118 lines (109 loc) · 3.64 KB
/
data-table-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
require("./env");
var vows = require('vows');
var assert = require('assert');
var suite = vows.describe('Data table');
function buildChart(id) {
var div = d3.select("body").append("div").attr("id", id);
var chart = dc.dataTable("#" + id)
.dimension(dateDimension)
.group(function(d) {
return dateFormat(d3.time.day(d.dd));
})
.transitionDuration(0)
.size(3)
.sortBy(function(d){return d.dd.getTime();})
.columns(
[function(d) {
return d.id;
}, function(d) {
return d.status;
}]
);
chart.render();
return chart;
}
suite.addBatch({
'creation': {
topic: function() {
var chart = buildChart("data-table");
return chart;
},
'should generate something': function(chart) {
assert.isNotNull(chart);
},
'should be registered':function(chart) {
assert.isTrue(dc.hasChart(chart));
},
'size should be set':function(chart) {
assert.equal(chart.size(), 3);
},
'sortBy should be set':function(chart) {
assert.isNotNull(chart.sortBy());
},
'order should be set':function(chart) {
assert.equal(chart.order(), d3.ascending);
},
'should have column span set on group tr':function(chart) {
assert.equal(chart.selectAll("tr.dc-table-group td")[0][0].getAttribute("colspan"), "2");
},
'should have id column created':function(chart) {
assert.equal(chart.selectAll("td._0")[0][0].innerHTML, 8);
assert.equal(chart.selectAll("td._0")[0][1].innerHTML, 3);
assert.equal(chart.selectAll("td._0")[0][2].innerHTML, 9);
},
'should have status column created':function(chart) {
assert.equal(chart.selectAll("td._1")[0][0].innerHTML, "F");
assert.equal(chart.selectAll("td._1")[0][1].innerHTML, "T");
assert.equal(chart.selectAll("td._1")[0][2].innerHTML, "T");
},
'teardown': function() {
resetAllFilters();
resetBody();
}
}
});
suite.addBatch({
'external filter':{
topic: function() {
var chart = buildChart("data-table2");
countryDimension.filter("CA");
chart.redraw();
return chart;
},
'should only render filtered data set': function(chart) {
assert.equal(chart.selectAll("td._0")[0].length, 2);
},
'should render the correctly filtered records': function(chart) {
assert.equal(chart.selectAll("td._0")[0][0].innerHTML, 5);
assert.equal(chart.selectAll("td._0")[0][1].innerHTML, 7);
},
'teardown': function() {
resetAllFilters();
resetBody();
}
}
});
suite.addBatch({
'renderlet':{
topic:function() {
var chart = buildChart("chart-renderlet");
chart.renderlet(function(chart) {
chart.selectAll("td.dc-table-label").text("changed");
});
return chart;
},
'custom renderlet should be invoked with render': function(chart) {
chart.render();
assert.equal(chart.selectAll("td.dc-table-label").text(), "changed");
},
'custom renderlet should be invoked with redraw': function(chart) {
chart.redraw();
assert.equal(chart.selectAll("td.dc-table-label").text(), "changed");
},
teardown: function(topic) {
resetAllFilters();
resetBody();
}
}
});
suite.export(module);