|
| 1 | +var Plotly = require('@lib'); |
| 2 | +var Lib = require('@src/lib'); |
| 3 | + |
1 | 4 | var Box = require('@src/traces/box');
|
2 | 5 |
|
| 6 | +var createGraphDiv = require('../assets/create_graph_div'); |
| 7 | +var destroyGraphDiv = require('../assets/destroy_graph_div'); |
| 8 | +var fail = require('../assets/fail_test'); |
| 9 | +var mouseEvent = require('../assets/mouse_event'); |
| 10 | + |
| 11 | +var customAssertions = require('../assets/custom_assertions'); |
| 12 | +var assertHoverLabelContent = customAssertions.assertHoverLabelContent; |
| 13 | + |
3 | 14 | describe('Test boxes supplyDefaults', function() {
|
4 | 15 | var traceIn;
|
5 | 16 | var traceOut;
|
@@ -101,3 +112,71 @@ describe('Test boxes supplyDefaults', function() {
|
101 | 112 | expect(traceOut.ycalendar).toBe('ethiopian');
|
102 | 113 | });
|
103 | 114 | });
|
| 115 | + |
| 116 | +describe('Test box hover:', function() { |
| 117 | + var gd; |
| 118 | + |
| 119 | + afterEach(destroyGraphDiv); |
| 120 | + |
| 121 | + function run(specs) { |
| 122 | + gd = createGraphDiv(); |
| 123 | + |
| 124 | + var fig = Lib.extendDeep( |
| 125 | + {width: 700, height: 500}, |
| 126 | + specs.mock || require('@mocks/box_grouped.json') |
| 127 | + ); |
| 128 | + |
| 129 | + if(specs.patch) { |
| 130 | + fig = specs.patch(fig); |
| 131 | + } |
| 132 | + |
| 133 | + var pos = specs.pos || [200, 200]; |
| 134 | + |
| 135 | + return Plotly.plot(gd, fig).then(function() { |
| 136 | + mouseEvent('mousemove', pos[0], pos[1]); |
| 137 | + assertHoverLabelContent(specs); |
| 138 | + }); |
| 139 | + } |
| 140 | + |
| 141 | + [{ |
| 142 | + desc: 'base', |
| 143 | + nums: ['0.55', '0', '0.3', '0.6', '0.7'], |
| 144 | + name: ['radishes', '', '', '', ''], |
| 145 | + axis: 'day 1', |
| 146 | + |
| 147 | + }, { |
| 148 | + desc: 'with mean', |
| 149 | + patch: function(fig) { |
| 150 | + fig.data.forEach(function(trace) { |
| 151 | + trace.boxmean = true; |
| 152 | + }); |
| 153 | + return fig; |
| 154 | + }, |
| 155 | + nums: ['0.55', '0', '0.3', '0.6', '0.7', '0.45'], |
| 156 | + name: ['radishes', '', '', '', '', ''], |
| 157 | + axis: 'day 1', |
| 158 | + |
| 159 | + }, { |
| 160 | + desc: 'with sd', |
| 161 | + patch: function(fig) { |
| 162 | + fig.data.forEach(function(trace) { |
| 163 | + trace.boxmean = 'sd'; |
| 164 | + }); |
| 165 | + return fig; |
| 166 | + }, |
| 167 | + nums: ['0.55', '0', '0.3', '0.6', '0.7', '0.45 ± 0.2362908'], |
| 168 | + name: ['radishes', '', '', '', '', ''], |
| 169 | + axis: 'day 1', |
| 170 | + }, { |
| 171 | + desc: 'with boxpoints fences', |
| 172 | + mock: require('@mocks/boxplots_outliercolordflt.json'), |
| 173 | + pos: [350, 200], |
| 174 | + nums: ['8.15', '0.75', '6.8', '10.25', '23.25', '5.25', '12'], |
| 175 | + name: ['', '', '', '', '', '', ''], |
| 176 | + axis: 'trace 0', |
| 177 | + }].forEach(function(specs) { |
| 178 | + it('should generate correct hover labels ' + specs.desc, function(done) { |
| 179 | + run(specs).catch(fail).then(done); |
| 180 | + }); |
| 181 | + }); |
| 182 | +}); |
0 commit comments