@datarailsshared/dr_renderer 1.2.453 → 1.2.454
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/charts/dr_chart.js +34 -0
- package/src/charts/dr_gauge_chart.js +550 -0
- package/src/dr-renderer-helpers.js +45 -0
- package/src/dr_chart_tooltip.js +279 -0
- package/src/highcharts_renderer.js +211 -4
- package/tests/dr-renderer-helpers.test.js +98 -0
- package/tests/dr_chart_tooltip.test.js +739 -0
- package/tests/dr_gauge_chart.test.js +1932 -0
- package/tests/highcharts_renderer.test.js +195 -0
@@ -8,6 +8,51 @@ import addInDynamicRanges from './mock/add-in-dynamic-ranges.json';
|
|
8
8
|
import widgets from './mock/widgets.json';
|
9
9
|
import initPivotTable from "../src/pivottable";
|
10
10
|
import initDRPivotTable from "../src/dr_pivottable";
|
11
|
+
import { DrGaugeChart, GAUGE_OPTIONS_DEFAULT } from "../src/charts/dr_gauge_chart";
|
12
|
+
|
13
|
+
const mockDrChartRender = jest.fn();
|
14
|
+
|
15
|
+
const mockGaugeRange = {
|
16
|
+
low: 30,
|
17
|
+
medium: 60,
|
18
|
+
high: 90,
|
19
|
+
max: 1000
|
20
|
+
};
|
21
|
+
|
22
|
+
jest.mock('../src/charts/dr_gauge_chart', () => {
|
23
|
+
return {
|
24
|
+
DrGaugeChart: jest.fn().mockImplementation(() => {
|
25
|
+
return {
|
26
|
+
render: mockDrChartRender
|
27
|
+
};
|
28
|
+
}),
|
29
|
+
GAUGE_OPTIONS_DEFAULT: {
|
30
|
+
segments: [{
|
31
|
+
from: 0,
|
32
|
+
to: 50,
|
33
|
+
color: 'red',
|
34
|
+
title: 'Title 1'
|
35
|
+
},
|
36
|
+
{
|
37
|
+
from: 51,
|
38
|
+
to: 80,
|
39
|
+
color: 'blue',
|
40
|
+
title: 'Title 2'
|
41
|
+
},
|
42
|
+
{
|
43
|
+
from: 81,
|
44
|
+
to: 100,
|
45
|
+
color: 'green',
|
46
|
+
title: 'Title 3'
|
47
|
+
}],
|
48
|
+
goal: {
|
49
|
+
name: 'Goal',
|
50
|
+
value: 180
|
51
|
+
},
|
52
|
+
isAbsoluteValue: false
|
53
|
+
}
|
54
|
+
};
|
55
|
+
});
|
11
56
|
|
12
57
|
const getHighchartsRenderer = require('../src/highcharts_renderer');
|
13
58
|
const DataFormatter = require('../src/dataformatter');
|
@@ -8668,6 +8713,156 @@ describe('highcharts_renderer', () => {
|
|
8668
8713
|
});
|
8669
8714
|
});
|
8670
8715
|
|
8716
|
+
describe('transformOldGaugeOptions', () => {
|
8717
|
+
it('should copy default segments', () => {
|
8718
|
+
expect(highchartsRenderer.transformOldGaugeOptions({
|
8719
|
+
opt1: 1,
|
8720
|
+
opt2: '2'
|
8721
|
+
})).toEqual({
|
8722
|
+
opt1: 1,
|
8723
|
+
opt2: '2',
|
8724
|
+
segments: GAUGE_OPTIONS_DEFAULT.segments
|
8725
|
+
});
|
8726
|
+
});
|
8727
|
+
|
8728
|
+
it('should not copy default segments if it\'s already exist', () => {
|
8729
|
+
expect(highchartsRenderer.transformOldGaugeOptions({
|
8730
|
+
opt1: 1,
|
8731
|
+
opt2: '2',
|
8732
|
+
segments: []
|
8733
|
+
})).toEqual({
|
8734
|
+
opt1: 1,
|
8735
|
+
opt2: '2',
|
8736
|
+
segments: []
|
8737
|
+
});
|
8738
|
+
});
|
8739
|
+
|
8740
|
+
it('should add goal', () => {
|
8741
|
+
const res = highchartsRenderer.transformOldGaugeOptions({
|
8742
|
+
opt1: 1,
|
8743
|
+
opt2: '2',
|
8744
|
+
range: mockGaugeRange
|
8745
|
+
});
|
8746
|
+
expect(res.goal).toEqual({
|
8747
|
+
name: GAUGE_OPTIONS_DEFAULT.goal.name,
|
8748
|
+
value: mockGaugeRange.max
|
8749
|
+
});
|
8750
|
+
});
|
8751
|
+
|
8752
|
+
it('should not replace the goal if it\'s already exist', () => {
|
8753
|
+
const res = highchartsRenderer.transformOldGaugeOptions({
|
8754
|
+
opt1: 1,
|
8755
|
+
opt2: '2',
|
8756
|
+
range: mockGaugeRange,
|
8757
|
+
goal: {
|
8758
|
+
title: 'custom title',
|
8759
|
+
value: 123
|
8760
|
+
}
|
8761
|
+
});
|
8762
|
+
expect(res.goal).toEqual({
|
8763
|
+
title: 'custom title',
|
8764
|
+
value: mockGaugeRange.max
|
8765
|
+
});
|
8766
|
+
});
|
8767
|
+
|
8768
|
+
it('should prepopulate segments with the old range data', () => {
|
8769
|
+
const res = highchartsRenderer.transformOldGaugeOptions({
|
8770
|
+
opt1: 1,
|
8771
|
+
opt2: '2',
|
8772
|
+
range: {
|
8773
|
+
low: 20,
|
8774
|
+
medium: 30,
|
8775
|
+
high: 70,
|
8776
|
+
max: 200
|
8777
|
+
}
|
8778
|
+
});
|
8779
|
+
expect(res.segments).toEqual([{
|
8780
|
+
from: 0,
|
8781
|
+
to: 20,
|
8782
|
+
color: GAUGE_OPTIONS_DEFAULT.segments[0].color,
|
8783
|
+
title: GAUGE_OPTIONS_DEFAULT.segments[0].title,
|
8784
|
+
},
|
8785
|
+
{
|
8786
|
+
from: 21,
|
8787
|
+
to: 30,
|
8788
|
+
color: GAUGE_OPTIONS_DEFAULT.segments[1].color,
|
8789
|
+
title: GAUGE_OPTIONS_DEFAULT.segments[1].title
|
8790
|
+
},
|
8791
|
+
{
|
8792
|
+
from: 31,
|
8793
|
+
to: 100,
|
8794
|
+
color: GAUGE_OPTIONS_DEFAULT.segments[2].color,
|
8795
|
+
title: GAUGE_OPTIONS_DEFAULT.segments[2].title
|
8796
|
+
}]);
|
8797
|
+
});
|
8798
|
+
|
8799
|
+
it('should remove old range object', () => {
|
8800
|
+
const res = highchartsRenderer.transformOldGaugeOptions({
|
8801
|
+
opt1: 1,
|
8802
|
+
opt2: '2',
|
8803
|
+
range: {
|
8804
|
+
low: 20,
|
8805
|
+
medium: 30,
|
8806
|
+
high: 70,
|
8807
|
+
max: 200
|
8808
|
+
}
|
8809
|
+
});
|
8810
|
+
expect(res.range).toBeUndefined();
|
8811
|
+
});
|
8812
|
+
});
|
8813
|
+
|
8814
|
+
describe('Function ptRenderGaugeEnhanced', () => {
|
8815
|
+
it('should render a gauge chart', () => {
|
8816
|
+
const optsMock = {
|
8817
|
+
chartOptions: {
|
8818
|
+
opt3: 'opt3'
|
8819
|
+
}
|
8820
|
+
};
|
8821
|
+
|
8822
|
+
const transformedOptsMock = {
|
8823
|
+
opt1: 'opt1',
|
8824
|
+
opt2: 'opt2'
|
8825
|
+
}
|
8826
|
+
|
8827
|
+
spyOn(highchartsRenderer, 'transformOldGaugeOptions').and.returnValue(transformedOptsMock);
|
8828
|
+
|
8829
|
+
const pivotDataMock = {
|
8830
|
+
getColKeys: () => [[1], [2], [3]],
|
8831
|
+
};
|
8832
|
+
|
8833
|
+
highchartsRenderer.ptRenderGaugeEnhanced(pivotDataMock, optsMock);
|
8834
|
+
expect(highchartsRenderer.transformOldGaugeOptions).toHaveBeenCalledWith({
|
8835
|
+
opt3: 'opt3'
|
8836
|
+
});
|
8837
|
+
expect(mockDrChartRender).toHaveBeenCalled();
|
8838
|
+
});
|
8839
|
+
|
8840
|
+
it('should render a gauge chart', () => {
|
8841
|
+
const optsMock = {
|
8842
|
+
chartOptions: {
|
8843
|
+
opt3: 'opt3'
|
8844
|
+
}
|
8845
|
+
};
|
8846
|
+
|
8847
|
+
const transformedOptsMock = {
|
8848
|
+
opt1: 'opt1',
|
8849
|
+
opt2: 'opt2'
|
8850
|
+
}
|
8851
|
+
|
8852
|
+
spyOn(highchartsRenderer, 'transformOldGaugeOptions').and.returnValue(transformedOptsMock);
|
8853
|
+
|
8854
|
+
const pivotDataMock = {
|
8855
|
+
getColKeys: () => [[1], [2], [3]],
|
8856
|
+
};
|
8857
|
+
|
8858
|
+
highchartsRenderer.ptRenderGaugeEnhanced(pivotDataMock, optsMock);
|
8859
|
+
expect(highchartsRenderer.transformOldGaugeOptions).toHaveBeenCalledWith({
|
8860
|
+
opt3: 'opt3'
|
8861
|
+
});
|
8862
|
+
expect(mockDrChartRender).toHaveBeenCalled();
|
8863
|
+
});
|
8864
|
+
});
|
8865
|
+
|
8671
8866
|
describe('Function ptRenderGauge', () => {
|
8672
8867
|
|
8673
8868
|
const pivotDataMock = {
|