63 строки
2.1 KiB
JavaScript
63 строки
2.1 KiB
JavaScript
require("../env");
|
|
|
|
var assert = require("assert");
|
|
|
|
module.exports = {
|
|
topic: function() {
|
|
var s = d3.select("body").append("div").selectAll("div")
|
|
.data(["one", "two", "three", "four"])
|
|
.enter().append("div")
|
|
.attr("class", String);
|
|
|
|
s.filter(function(d, i) { return i > 0; }).append("span");
|
|
s[0][3] = null;
|
|
|
|
return s.transition()
|
|
.delay(function(d, i) { return i * 13; })
|
|
.duration(function(d, i) { return i * 21; });
|
|
},
|
|
|
|
"selects the first matching element": function(transition) {
|
|
var t = transition.select("span");
|
|
assert.domEqual(t[0][1].parentNode, transition[0][1]);
|
|
assert.domEqual(t[0][2].parentNode, transition[0][2]);
|
|
},
|
|
"ignores null elements": function(transition) {
|
|
var t = transition.select("span");
|
|
assert.isNull(t[0][3]);
|
|
},
|
|
"propagates data to the selected elements": function(transition) {
|
|
var t = transition.select("span");
|
|
assert.equal(t[0][1].__data__, "two");
|
|
assert.equal(t[0][2].__data__, "three");
|
|
},
|
|
"propagates delay to the selected elements": function(transition) {
|
|
var t = transition.select("span");
|
|
assert.equal(t[0][1].__transition__[t.id].delay, 13);
|
|
assert.equal(t[0][2].__transition__[t.id].delay, 26);
|
|
},
|
|
"propagates duration to the selected elements": function(transition) {
|
|
var t = transition.select("span");
|
|
assert.equal(t[0][1].__transition__[t.id].duration, 21);
|
|
assert.equal(t[0][2].__transition__[t.id].duration, 42);
|
|
},
|
|
"does not propagate data if no data was specified": function(transition) {
|
|
delete transition[0][1].__data__;
|
|
delete transition[0][1].firstChild.__data__;
|
|
var t = transition.select("span");
|
|
assert.isUndefined(t[0][1].__data__);
|
|
assert.equal(t[0][2].__data__, "three");
|
|
},
|
|
"returns null if no match is found": function(transition) {
|
|
var t = transition.select("span");
|
|
assert.isNull(t[0][0]);
|
|
},
|
|
"inherits transition id": function(transition) {
|
|
var id = transition.id,
|
|
t0 = transition.select("span"),
|
|
t1 = transition.select("span");
|
|
assert.equal(t0.id, id);
|
|
assert.equal(t1.id, id);
|
|
}
|
|
};
|