46 строки
1.5 KiB
JavaScript
46 строки
1.5 KiB
JavaScript
require("../env");
|
|
|
|
var assert = require("assert");
|
|
|
|
module.exports = {
|
|
topic: function() {
|
|
var cb = this.callback,
|
|
t = d3.select("body").append("div").transition().remove();
|
|
t.each("end", function() { cb(null, t); });
|
|
},
|
|
"removes the selected elements": function(transition) {
|
|
assert.domEqual(transition[0][0].node.parentNode, null);
|
|
},
|
|
|
|
"when the element is already removed": {
|
|
topic: function() {
|
|
var cb = this.callback,
|
|
t = d3.select("body").append("div").remove().transition().remove();
|
|
t.each("end", function() { cb(null, t); });
|
|
},
|
|
"does nothing": function(transition) {
|
|
assert.domEqual(transition[0][0].node.parentNode, null);
|
|
}
|
|
},
|
|
|
|
// Since these tests are triggered inside the end event of the above topic,
|
|
// transitions will inherit ids from the original transition. But we want to
|
|
// test concurrent transitions, so we use timeouts to avoid inheritance. This
|
|
// test also verifies that if multiple transitions are created at the same
|
|
// time, the last transition becomes the owner.
|
|
|
|
"when another transition is scheduled": {
|
|
topic: function() {
|
|
var cb = this.callback,
|
|
s = d3.select("body").append("div");
|
|
setTimeout(function() {
|
|
s.transition().duration(150).remove().each("end", function() { cb(null, s); });
|
|
s.transition().delay(250);
|
|
}, 10);
|
|
},
|
|
"does nothing": function(selection) {
|
|
assert.domEqual(selection[0][0].parentNode, document.body);
|
|
}
|
|
}
|
|
};
|