Skip to content

Commit a64943b

Browse files
committed
assert hover label rotation
1 parent 3f42bd4 commit a64943b

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

test/jasmine/assets/custom_assertions.js

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ function count(selector) {
9292
* - axis {string}
9393
* - vOrder {array of number}
9494
* - hOrder {array of number}
95+
* - isRotated {boolean}
9596
* @param {string} msg
9697
*/
9798
exports.assertHoverLabelContent = function(expectation, msg) {
@@ -105,17 +106,22 @@ exports.assertHoverLabelContent = function(expectation, msg) {
105106
var axMsg = 'common axis hover label';
106107
var axCnt = count(axSelector);
107108

109+
var reRotate = /(\brotate\(.*?\);?)/;
110+
108111
if(ptCnt === 1) {
109-
assertLabelContent(
110-
d3.select(ptSelector + '> text.nums'),
111-
expectation.nums,
112-
ptMsg + ' (nums)'
113-
);
114-
assertLabelContent(
115-
d3.select(ptSelector + '> text.name'),
116-
expectation.name,
117-
ptMsg + ' (name)'
118-
);
112+
var g = d3.select(ptSelector);
113+
var numsSel = g.select('text.nums');
114+
var nameSel = g.select('text.name');
115+
116+
assertLabelContent(numsSel, expectation.nums, ptMsg + ' (nums)');
117+
assertLabelContent(nameSel, expectation.name, ptMsg + ' (name)');
118+
119+
if('isRotated' in expectation) {
120+
expect(g.attr('transform').match(reRotate))
121+
.negateIf(expectation.isRotated)
122+
.toBe(null, ptMsg + ' should be rotated');
123+
124+
}
119125
} else if(ptCnt > 1) {
120126
if(!Array.isArray(expectation.nums) || !Array.isArray(expectation.name)) {
121127
fail(ptMsg + ': expecting more than 1 labels.');
@@ -126,16 +132,19 @@ exports.assertHoverLabelContent = function(expectation, msg) {
126132

127133
var bboxes = [];
128134
d3.selectAll(ptSelector).each(function(_, i) {
129-
assertLabelContent(
130-
d3.select(this).select('text.nums'),
131-
expectation.nums[i],
132-
ptMsg + ' (nums ' + i + ')'
133-
);
134-
assertLabelContent(
135-
d3.select(this).select('text.name'),
136-
expectation.name[i],
137-
ptMsg + ' (name ' + i + ')'
138-
);
135+
var g = d3.select(this);
136+
var numsSel = g.select('text.nums');
137+
var nameSel = g.select('text.name');
138+
139+
assertLabelContent(numsSel, expectation.nums[i], ptMsg + ' (nums ' + i + ')');
140+
assertLabelContent(nameSel, expectation.name[i], ptMsg + ' (name ' + i + ')');
141+
142+
if('isRotated' in expectation) {
143+
expect(g.attr('transform').match(reRotate))
144+
.negateIf(expectation.isRotated)
145+
.toBe(null, ptMsg + ' ' + i + ' should be rotated');
146+
}
147+
139148
bboxes.push({bbox: this.getBoundingClientRect(), index: i});
140149
});
141150
if(expectation.vOrder) {

test/jasmine/tests/violin_test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ describe('Test violin hover:', function() {
439439
name: ['categories', '', '', '', '', '', ''],
440440
axis: 'categories',
441441
hOrder: [4, 5, 3, 6, 0, 2, 1],
442+
isRotated: true
442443
}, {
443444
desc: 'multiple horizontal violins',
444445
mock: require('@mocks/box_grouped_horz.json'),
@@ -454,6 +455,7 @@ describe('Test violin hover:', function() {
454455
name: ['kale', '', '', '', ''],
455456
axis: 'day 2',
456457
hOrder: [4, 3, 0, 2, 1],
458+
isRotated: true
457459
}, {
458460
desc: 'multiple horizontal violins (under hovermode:closest)',
459461
mock: require('@mocks/box_grouped_horz.json'),
@@ -473,6 +475,7 @@ describe('Test violin hover:', function() {
473475
],
474476
name: ['radishes', '', '', '', ''],
475477
hOrder: [4, 3, 0, 2, 1],
478+
isRotated: true
476479
}]
477480
.forEach(function(specs) {
478481
it('should generate correct hover labels ' + specs.desc, function(done) {

0 commit comments

Comments
 (0)