|
1 require("../env"); |
|
2 require("../../d3"); |
|
3 |
|
4 var assert = require("assert"); |
|
5 |
|
6 module.exports = { |
|
7 topic: function() { |
|
8 return d3.select("body").html("").selectAll() |
|
9 .data(["foo", "bar"]) |
|
10 .enter().append("div") |
|
11 .attr("class", String); |
|
12 }, |
|
13 "defaults to 250 milliseconds": function(selection) { |
|
14 var t = selection.transition(); |
|
15 assert.strictEqual(t[0][0].duration, 250); |
|
16 assert.strictEqual(t[0][1].duration, 250); |
|
17 }, |
|
18 "can specify duration as a number": function(selection) { |
|
19 var t = selection.transition().duration(150); |
|
20 assert.strictEqual(t[0][0].duration, 150); |
|
21 assert.strictEqual(t[0][1].duration, 150); |
|
22 t.duration(50); |
|
23 assert.strictEqual(t[0][0].duration, 50); |
|
24 assert.strictEqual(t[0][1].duration, 50); |
|
25 }, |
|
26 "can specify duration as a function": function(selection) { |
|
27 var dd = [], ii = [], tt = [], t = selection.transition().duration(f); |
|
28 function f(d, i) { dd.push(d); ii.push(i); tt.push(this); return i * 20; } |
|
29 assert.strictEqual(t[0][0].duration, 0); |
|
30 assert.strictEqual(t[0][1].duration, 20); |
|
31 assert.deepEqual(dd, ["foo", "bar"], "expected data, got {actual}"); |
|
32 assert.deepEqual(ii, [0, 1], "expected index, got {actual}"); |
|
33 assert.domEqual(tt[0], t[0][0].node, "expected this, got {actual}"); |
|
34 assert.domEqual(tt[1], t[0][1].node, "expected this, got {actual}"); |
|
35 }, |
|
36 "coerces duration to a number": function(selection) { |
|
37 var t = selection.transition().duration("150"); |
|
38 assert.strictEqual(t[0][0].duration, 150); |
|
39 assert.strictEqual(t[0][1].duration, 150); |
|
40 } |
|
41 }; |