Skip to content

Commit

Permalink
Fix #59.
Browse files Browse the repository at this point in the history
  • Loading branch information
mbostock committed Jul 30, 2019
1 parent 7da8ef2 commit 6d3591d
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 10 deletions.
2 changes: 1 addition & 1 deletion rollup.config.js
Expand Up @@ -11,7 +11,7 @@ const config = {
indent: false,
extend: true,
banner: `// ${meta.homepage} v${meta.version} Copyright ${(new Date).getFullYear()} ${meta.author.name}`,
globals: Object.assign({}, ...Object.keys(meta.dependencies || {}).filter(key => /^d3-/.test(key)).map(key => ({[key]: "d3"})))
globals: Object.assign({}, ...Object.keys({...meta.dependencies, ...meta.peerDependencies}).filter(key => /^d3-/.test(key)).map(key => ({[key]: "d3"})))
},
plugins: []
};
Expand Down
2 changes: 1 addition & 1 deletion src/selection/transition.js
Expand Up @@ -14,7 +14,7 @@ function inherit(node, id) {
var timing;
while (!(timing = node.__transition) || !(timing = timing[id])) {
if (!(node = node.parentNode)) {
return defaultTiming.time = now(), defaultTiming;
throw new Error(`transition ${id} not found`);
}
}
return timing;
Expand Down
21 changes: 21 additions & 0 deletions test/selection/transition-test.js
Expand Up @@ -129,3 +129,24 @@ tape("selection.transition(transition) reselects the existing transition with th
test.equal(transition2.tween("tween"), bar);
test.end();
});

tape("selection.transition(transition) throws an error if the specified transition is not found", function(test) {
var document = jsdom("<h1 id='one'></h1><h1 id='two'></h1>"),
one = document.querySelector("#one"),
two = document.querySelector("#two"),
transition1 = d3_selection.select(one).transition(),
transition2 = d3_selection.select(two).transition().delay(50);
try {
d3_selection.select(two).transition(transition1);
test.fail();
} catch (error) {
test.deepEqual(error.message, `transition ${transition1._id} not found`);
}
try {
d3_selection.select(one).transition(transition2);
test.fail();
} catch (error) {
test.deepEqual(error.message, `transition ${transition2._id} not found`);
}
test.end();
});
2 changes: 0 additions & 2 deletions test/transition/delay-test.js
Expand Up @@ -18,8 +18,6 @@ tape("transition.delay() returns the delay for the first non-null node", functio
test.strictEqual(d3_selection.select(two).transition(transition2).delay(), 50);
test.strictEqual(d3_selection.selectAll([null, one]).transition(transition1).delay(), 0);
test.strictEqual(d3_selection.selectAll([null, two]).transition(transition2).delay(), 50);
test.strictEqual(d3_selection.selectAll([one, two]).transition(transition1).delay(), 0);
test.strictEqual(d3_selection.selectAll([two, one]).transition(transition2).delay(), 50);
test.end();
});

Expand Down
2 changes: 0 additions & 2 deletions test/transition/duration-test.js
Expand Up @@ -18,8 +18,6 @@ tape("transition.duration() returns the duration for the first non-null node", f
test.strictEqual(d3_selection.select(two).transition(transition2).duration(), 50);
test.strictEqual(d3_selection.selectAll([null, one]).transition(transition1).duration(), 250);
test.strictEqual(d3_selection.selectAll([null, two]).transition(transition2).duration(), 50);
test.strictEqual(d3_selection.selectAll([one, two]).transition(transition1).duration(), 250);
test.strictEqual(d3_selection.selectAll([two, one]).transition(transition2).duration(), 50);
test.end();
});

Expand Down
2 changes: 0 additions & 2 deletions test/transition/ease-test.js
Expand Up @@ -21,8 +21,6 @@ tape("transition.ease() returns the easing function for the first non-null node"
test.strictEqual(d3_selection.select(two).transition(transition2).ease(), d3_ease.easeBounce);
test.strictEqual(d3_selection.selectAll([null, one]).transition(transition1).ease(), d3_ease.easeCubic);
test.strictEqual(d3_selection.selectAll([null, two]).transition(transition2).ease(), d3_ease.easeBounce);
test.strictEqual(d3_selection.selectAll([one, two]).transition(transition1).ease(), d3_ease.easeCubic);
test.strictEqual(d3_selection.selectAll([two, one]).transition(transition2).ease(), d3_ease.easeBounce);
test.end();
});

Expand Down
5 changes: 3 additions & 2 deletions test/transition/merge-test.js
Expand Up @@ -7,8 +7,9 @@ tape("transition.merge(other) merges elements from the specified other transitio
var document = jsdom("<h1 id='one'></h1><h1 id='two'></h1>"),
one = document.querySelector("#one"),
two = document.querySelector("#two"),
transition1 = d3_selection.selectAll([null, two]).transition(),
transition2 = d3_selection.selectAll([one, null]).transition(transition1),
transition0 = d3_selection.select(document.documentElement).transition(),
transition1 = d3_selection.selectAll([null, two]).transition(transition0),
transition2 = d3_selection.selectAll([one, null]).transition(transition0),
transition3 = transition1.merge(transition2);
test.equal(transition3 instanceof d3_transition.transition, true);
test.deepEqual(transition3._groups, [[one, two]]);
Expand Down

0 comments on commit 6d3591d

Please sign in to comment.