Skip to content

Commit 7907140

Browse files
committed
make fx default test more robust
1 parent efcb027 commit 7907140

File tree

1 file changed

+47
-22
lines changed

1 file changed

+47
-22
lines changed

test/jasmine/tests/fx_test.js

Lines changed: 47 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,96 @@
11
var Plotly = require('@lib/index');
22
var Plots = require('@src/plots/plots');
33

4-
var Fx = require('@src/components/fx');
5-
64
var d3 = require('d3');
75
var createGraphDiv = require('../assets/create_graph_div');
86
var destroyGraphDiv = require('../assets/destroy_graph_div');
97

10-
118
describe('Fx defaults', function() {
129
'use strict';
1310

14-
var layoutIn, layoutOut, fullData;
11+
function _supply(data, layout) {
12+
var gd = {
13+
data: data || [],
14+
layout: layout || {}
15+
};
16+
17+
Plots.supplyDefaults(gd);
1518

16-
beforeEach(function() {
17-
layoutIn = {};
18-
layoutOut = {
19-
_has: Plots._hasPlotType
19+
return {
20+
data: gd._fullData,
21+
layout: gd._fullLayout
2022
};
21-
fullData = [{}];
22-
});
23+
}
2324

2425
it('should default (blank version)', function() {
25-
Fx.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
26+
var layoutOut = _supply().layout;
2627
expect(layoutOut.hovermode).toBe('closest', 'hovermode to closest');
2728
expect(layoutOut.dragmode).toBe('zoom', 'dragmode to zoom');
2829
});
2930

3031
it('should default (cartesian version)', function() {
31-
layoutOut._basePlotModules = [{ name: 'cartesian' }];
32+
var layoutOut = _supply([{
33+
type: 'bar',
34+
y: [1, 2, 1]
35+
}])
36+
.layout;
3237

33-
Fx.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
3438
expect(layoutOut.hovermode).toBe('x', 'hovermode to x');
3539
expect(layoutOut.dragmode).toBe('zoom', 'dragmode to zoom');
3640
expect(layoutOut._isHoriz).toBe(false, 'isHoriz to false');
3741
});
3842

3943
it('should default (cartesian horizontal version)', function() {
40-
layoutOut._basePlotModules = [{ name: 'cartesian' }];
41-
fullData[0] = { orientation: 'h' };
44+
var layoutOut = _supply([{
45+
type: 'bar',
46+
orientation: 'h',
47+
x: [1, 2, 3],
48+
y: [1, 2, 1]
49+
}])
50+
.layout;
4251

43-
Fx.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
4452
expect(layoutOut.hovermode).toBe('y', 'hovermode to y');
4553
expect(layoutOut.dragmode).toBe('zoom', 'dragmode to zoom');
4654
expect(layoutOut._isHoriz).toBe(true, 'isHoriz to true');
4755
});
4856

4957
it('should default (gl3d version)', function() {
50-
layoutOut._basePlotModules = [{ name: 'gl3d' }];
58+
var layoutOut = _supply([{
59+
type: 'scatter3d',
60+
x: [1, 2, 3],
61+
y: [1, 2, 3],
62+
z: [1, 2, 1]
63+
}])
64+
.layout;
5165

52-
Fx.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
5366
expect(layoutOut.hovermode).toBe('closest', 'hovermode to closest');
5467
expect(layoutOut.dragmode).toBe('zoom', 'dragmode to zoom');
5568
});
5669

5770
it('should default (geo version)', function() {
58-
layoutOut._basePlotModules = [{ name: 'geo' }];
71+
var layoutOut = _supply([{
72+
type: 'scattergeo',
73+
lon: [1, 2, 3],
74+
lat: [1, 2, 3]
75+
}])
76+
.layout;
5977

60-
Fx.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
6178
expect(layoutOut.hovermode).toBe('closest', 'hovermode to closest');
6279
expect(layoutOut.dragmode).toBe('zoom', 'dragmode to zoom');
6380
});
6481

6582
it('should default (multi plot type version)', function() {
66-
layoutOut._basePlotModules = [{ name: 'cartesian' }, { name: 'gl3d' }];
83+
var layoutOut = _supply([{
84+
type: 'bar',
85+
y: [1, 2, 1]
86+
}, {
87+
type: 'scatter3d',
88+
x: [1, 2, 3],
89+
y: [1, 2, 3],
90+
z: [1, 2, 1]
91+
}])
92+
.layout;
6793

68-
Fx.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
6994
expect(layoutOut.hovermode).toBe('x', 'hovermode to x');
7095
expect(layoutOut.dragmode).toBe('zoom', 'dragmode to zoom');
7196
});

0 commit comments

Comments
 (0)