@datarailsshared/dr_renderer 1.2.420 → 1.2.422
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/highcharts_renderer.js +87 -17
- package/tests/highcharts_renderer.test.js +192 -0
package/package.json
CHANGED
@@ -379,6 +379,31 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
379
379
|
|
380
380
|
/** End of 'Highcharts initial configuration section' **/
|
381
381
|
|
382
|
+
const chartDataLabelsVerticalOptions = function (chartOptions) {
|
383
|
+
const vertical = lodash.get(chartOptions, 'label.vertical', false);
|
384
|
+
if (vertical) {
|
385
|
+
return {
|
386
|
+
rotation: 270,
|
387
|
+
y: -25,
|
388
|
+
padding: 10,
|
389
|
+
crop: false,
|
390
|
+
};
|
391
|
+
}
|
392
|
+
|
393
|
+
return {};
|
394
|
+
};
|
395
|
+
|
396
|
+
const chartHasVerticalDataLabelsOption = (type) => {
|
397
|
+
return ![
|
398
|
+
highchartsRenderer.CHART_TYPES.LINE_CHART,
|
399
|
+
highchartsRenderer.CHART_TYPES.LINE_CHART_SMOOTH,
|
400
|
+
highchartsRenderer.CHART_TYPES.AREA_CHART,
|
401
|
+
highchartsRenderer.CHART_TYPES.AREA_CHART_SMOOTH,
|
402
|
+
highchartsRenderer.CHART_TYPES.BAR_CHART,
|
403
|
+
highchartsRenderer.CHART_TYPES.BAR_CHART_STACKED,
|
404
|
+
].includes(type);
|
405
|
+
};
|
406
|
+
|
382
407
|
highchartsRenderer.filterFloat = function (value) {
|
383
408
|
if (/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/.test(value))
|
384
409
|
return Number(value);
|
@@ -1041,8 +1066,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1041
1066
|
};
|
1042
1067
|
if (isNewAngular) {
|
1043
1068
|
const isPieChart = chartOptions.chart && chartOptions.chart.type === 'pie';
|
1044
|
-
const x = isPieChart ? 13 : 12
|
1045
|
-
const y = isPieChart ? -9 : 6
|
1069
|
+
const x = isPieChart ? 13 : 12;
|
1070
|
+
const y = isPieChart ? -9 : 6;
|
1046
1071
|
chartOptions.chart.spacingBottom = lodash.get(chartOptions, 'xAxis.title') ? 34 : 30;
|
1047
1072
|
chartOptions.drilldown.breadcrumbs = {
|
1048
1073
|
formatter: () => '< Back',
|
@@ -1848,7 +1873,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1848
1873
|
var col_n_keys = pivotData.getColKeys();
|
1849
1874
|
var row_n_keys = pivotData.getRowKeys();
|
1850
1875
|
|
1851
|
-
var num_cols = col_n_keys.length;
|
1852
1876
|
var num_rows = row_n_keys.length;
|
1853
1877
|
|
1854
1878
|
const isOthersIncludedInRow = num_rows === 1 && lodash.includes(row_n_keys[0], highchartsRenderer.DR_OTHERS_KEY);
|
@@ -1867,9 +1891,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1867
1891
|
var ob = {};
|
1868
1892
|
// check string contains hebrew
|
1869
1893
|
ob.initialName = (/[\u0590-\u05FF]/).test(key) ? ('\u200E' + key) : key;
|
1870
|
-
if (lodash.isEmpty(String(ob.name))) {
|
1871
|
-
ob.initialName = "[blank]";
|
1872
|
-
}
|
1873
1894
|
|
1874
1895
|
if (ob.initialName === highchartsRenderer.DR_OTHERS_KEY) {
|
1875
1896
|
ob.initialName = othersName;
|
@@ -1898,8 +1919,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1898
1919
|
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
1899
1920
|
|
1900
1921
|
var pie_drill_down_series = [],
|
1901
|
-
|
1902
|
-
|
1922
|
+
row_n_keys = pivotData.getRowKeys(),
|
1923
|
+
col_n_keys = pivotData.getColKeys();
|
1903
1924
|
|
1904
1925
|
var num_cols = col_n_keys.length;
|
1905
1926
|
var num_rows = row_n_keys.length;
|
@@ -3044,11 +3065,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
3044
3065
|
}
|
3045
3066
|
};
|
3046
3067
|
}
|
3047
|
-
|
3068
|
+
chartOptions.plotOptions.series = highchartsRenderer.getDataLabelsOptions(additionOptions, chartOptions.plotOptions.series);
|
3048
3069
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, false);
|
3049
3070
|
|
3050
3071
|
chartOptions.drilldown = highchartsRenderer.getDataLabelsStylesForDrillDown(additionOptions);
|
3051
|
-
|
3052
3072
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
3053
3073
|
};
|
3054
3074
|
|
@@ -5084,10 +5104,28 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
5084
5104
|
|
5085
5105
|
const timeframe = highchartsRenderer.getTimeframeByFormat(format);
|
5086
5106
|
const fiscalYearMonthsModifier = highchartsRenderer.getFiscalYearMonthModifier();
|
5107
|
+
const isFiscalYearBackEnabled = highchartsRenderer.isFiscalYearBackEnabled();
|
5087
5108
|
|
5088
5109
|
let date = moment_lib(tryParse).utcOffset(0);
|
5089
|
-
|
5110
|
+
const originalDateYear = date.year()
|
5111
|
+
const originalDateMonth = date.month();
|
5112
|
+
|
5113
|
+
if (lodash.includes(['quarter'], timeframe)){
|
5090
5114
|
date = date.subtract(fiscalYearMonthsModifier, 'M');
|
5115
|
+
if (fiscalYearMonthsModifier > 0 && !isFiscalYearBackEnabled) {
|
5116
|
+
let fiscalYear = originalDateYear;
|
5117
|
+
if ((originalDateMonth - fiscalYearMonthsModifier) >= 0) {
|
5118
|
+
fiscalYear += 1;
|
5119
|
+
}
|
5120
|
+
date = date.set('year', fiscalYear);
|
5121
|
+
}
|
5122
|
+
}
|
5123
|
+
|
5124
|
+
if (lodash.includes(['year'], timeframe)) {
|
5125
|
+
if (fiscalYearMonthsModifier > 0 && isFiscalYearBackEnabled) {
|
5126
|
+
let fiscalYear = originalDateYear - 1;
|
5127
|
+
date = date.set('year', fiscalYear);
|
5128
|
+
}
|
5091
5129
|
}
|
5092
5130
|
|
5093
5131
|
return date.format(format) + "";
|
@@ -6017,7 +6055,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6017
6055
|
let valToReturn = {};
|
6018
6056
|
if (chartOpt) {
|
6019
6057
|
lodash.forEach(chartOpt.suboptions, (suboption) => {
|
6020
|
-
valToReturn[suboption.category_type] = highchartsRenderer.getDefaultValueForSubOptions(suboption, existing_options);
|
6058
|
+
valToReturn[suboption.category_type] = highchartsRenderer.getDefaultValueForSubOptions(suboption, existing_options, type);
|
6021
6059
|
});
|
6022
6060
|
}
|
6023
6061
|
|
@@ -6087,6 +6125,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6087
6125
|
};
|
6088
6126
|
result = lodash.merge(result, options);
|
6089
6127
|
result = lodash.merge(result, chartOptions.dataLabels);
|
6128
|
+
result = lodash.merge(result, chartDataLabelsVerticalOptions(additionalOptions, chartOptions));
|
6090
6129
|
chartOptions.dataLabels = result;
|
6091
6130
|
|
6092
6131
|
return chartOptions;
|
@@ -6098,7 +6137,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6098
6137
|
return key
|
6099
6138
|
};
|
6100
6139
|
|
6101
|
-
highchartsRenderer.getDefaultValueForSubOptions = function (option, existing_options) {
|
6140
|
+
highchartsRenderer.getDefaultValueForSubOptions = function (option, existing_options, chartType) {
|
6102
6141
|
const valToReturn = {};
|
6103
6142
|
|
6104
6143
|
if (option) {
|
@@ -6106,6 +6145,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6106
6145
|
lodash.forEach(option.elements, function (elem) {
|
6107
6146
|
if (existing_options && lodash.has(existing_options, type + '.' + elem.value_name)) {
|
6108
6147
|
valToReturn[elem.value_name] = lodash.get(existing_options, type + '.' + elem.value_name);
|
6148
|
+
|
6149
|
+
if (elem.showFn && typeof elem.showFn === 'function' && !elem.showFn(chartType)) {
|
6150
|
+
valToReturn[elem.value_name] = undefined;
|
6151
|
+
}
|
6109
6152
|
}
|
6110
6153
|
if (valToReturn[elem.value_name] == undefined && elem.element_type !== 'devider') {
|
6111
6154
|
if (typeof elem.default_value === 'object') {
|
@@ -6652,6 +6695,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6652
6695
|
value_name: 'overlap',
|
6653
6696
|
default_value: false
|
6654
6697
|
},
|
6698
|
+
{
|
6699
|
+
element_type: 'toggle',
|
6700
|
+
element_label: 'Vertical',
|
6701
|
+
value_name: 'vertical',
|
6702
|
+
default_value: false,
|
6703
|
+
showFn: chartHasVerticalDataLabelsOption,
|
6704
|
+
},
|
6655
6705
|
{
|
6656
6706
|
element_type: 'devider',
|
6657
6707
|
},
|
@@ -6795,6 +6845,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6795
6845
|
value_name: 'overlap',
|
6796
6846
|
default_value: false
|
6797
6847
|
},
|
6848
|
+
{
|
6849
|
+
element_type: 'toggle',
|
6850
|
+
element_label: 'Vertical',
|
6851
|
+
value_name: 'vertical',
|
6852
|
+
default_value: false,
|
6853
|
+
showFn: chartHasVerticalDataLabelsOption,
|
6854
|
+
},
|
6798
6855
|
{
|
6799
6856
|
element_type: 'toggle',
|
6800
6857
|
element_label: 'Shadow',
|
@@ -8520,18 +8577,27 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
8520
8577
|
lastDay2.getMonth(),
|
8521
8578
|
lastDay2.getDate(),
|
8522
8579
|
23, 59, 59
|
8523
|
-
) / 1000)
|
8580
|
+
) / 1000);
|
8524
8581
|
return range;
|
8525
8582
|
case 'quarter':
|
8526
8583
|
const utcDate = moment_lib.utc(initialDateString, format, true);
|
8527
|
-
range.val.fromdate = lodash.cloneDeep(utcDate).startOf(timeframe).add(fiscalYearMonthsModifier, 'M')
|
8528
|
-
range.val.todate = lodash.cloneDeep(utcDate).endOf(timeframe).add(fiscalYearMonthsModifier, 'M').endOf('M')
|
8584
|
+
range.val.fromdate = lodash.cloneDeep(utcDate).startOf(timeframe).add(fiscalYearMonthsModifier, 'M');
|
8585
|
+
range.val.todate = lodash.cloneDeep(utcDate).endOf(timeframe).add(fiscalYearMonthsModifier, 'M').endOf('M');
|
8586
|
+
if (fiscalYearMonthsModifier > 0 && !highchartsRenderer.isFiscalYearBackEnabled()) {
|
8587
|
+
range.val.fromdate = moment_lib(range.val.fromdate.subtract(1, 'Y'));
|
8588
|
+
range.val.todate = moment_lib(range.val.todate.subtract(1, 'Y'));
|
8589
|
+
}
|
8590
|
+
range.val.fromdate = range.val.fromdate.unix();
|
8591
|
+
range.val.todate = range.val.todate.unix();
|
8529
8592
|
return range;
|
8530
8593
|
default:
|
8531
8594
|
return "";
|
8532
8595
|
}
|
8533
8596
|
} else if (!lodash.isNaN(fieldnametoFilter)) {
|
8534
|
-
|
8597
|
+
let utcDate = moment_lib.unix(fieldnametoFilter).utc();
|
8598
|
+
if (lodash.includes(['year', 'quarter'], timeframe)) {
|
8599
|
+
utcDate = moment_lib(utcDate).subtract(fiscalYearMonthsModifier, 'M');
|
8600
|
+
}
|
8535
8601
|
const fromDateMoment = lodash.cloneDeep(utcDate).startOf(timeframe);
|
8536
8602
|
const toDateMoment = lodash.cloneDeep(utcDate).endOf(timeframe);
|
8537
8603
|
|
@@ -9497,6 +9563,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
9497
9563
|
return lodash.get(document, 'ReportHippo.user.organization.fiscal_year_starts_from', 1) - 1;
|
9498
9564
|
}
|
9499
9565
|
|
9566
|
+
highchartsRenderer.isFiscalYearBackEnabled = function() {
|
9567
|
+
return lodash.get(document, 'ReportHippo.user.organization.fiscal_year_back');
|
9568
|
+
}
|
9569
|
+
|
9500
9570
|
highchartsRenderer.getTimeframeByFormat = function(format) {
|
9501
9571
|
if (format && highchartsRenderer.containsIgnoreCase(format, 'q'))
|
9502
9572
|
return 'quarter';
|
@@ -39,6 +39,7 @@ describe('highcharts_renderer', () => {
|
|
39
39
|
getOptions: function() { return Highcharts.opt; },
|
40
40
|
Tooltip: {},
|
41
41
|
wrap: () => {},
|
42
|
+
chart: () => {},
|
42
43
|
};
|
43
44
|
_window.DataFormatter = DataFormatter;
|
44
45
|
initPivotTable($, _window, _document);
|
@@ -7375,6 +7376,124 @@ describe('highcharts_renderer', () => {
|
|
7375
7376
|
})
|
7376
7377
|
});
|
7377
7378
|
|
7379
|
+
describe('Function ptCreateElementAndDraw', () => {
|
7380
|
+
beforeEach(() => {
|
7381
|
+
jest.clearAllMocks();
|
7382
|
+
});
|
7383
|
+
|
7384
|
+
afterAll(() => {
|
7385
|
+
jest.restoreAllMocks();
|
7386
|
+
});
|
7387
|
+
|
7388
|
+
it('should set chart colors palette using widget or dashboard colors palette', () => {
|
7389
|
+
const chartOptions = {
|
7390
|
+
colors: [],
|
7391
|
+
chart: {
|
7392
|
+
},
|
7393
|
+
};
|
7394
|
+
const optionsWidgetPalette = {
|
7395
|
+
paletteOptions: {
|
7396
|
+
widgetPalette: ['#ff0202', '#b3060e', '#70000a'],
|
7397
|
+
dashboardPalette: {
|
7398
|
+
colors: ['#ffffff', '#000000']
|
7399
|
+
},
|
7400
|
+
},
|
7401
|
+
onlyOptions: true,
|
7402
|
+
};
|
7403
|
+
|
7404
|
+
const res = highchartsRenderer.ptCreateElementAndDraw(chartOptions, optionsWidgetPalette);
|
7405
|
+
expect(res.colors).toEqual(optionsWidgetPalette.paletteOptions.widgetPalette);
|
7406
|
+
|
7407
|
+
const optionsDashboardPalette = {
|
7408
|
+
paletteOptions: {
|
7409
|
+
dashboardPalette: {
|
7410
|
+
colors: ['#ffffff', '#000000']
|
7411
|
+
},
|
7412
|
+
},
|
7413
|
+
onlyOptions: true,
|
7414
|
+
};
|
7415
|
+
|
7416
|
+
const res2 = highchartsRenderer.ptCreateElementAndDraw(chartOptions, optionsDashboardPalette);
|
7417
|
+
expect(res2.colors).toEqual(optionsDashboardPalette.paletteOptions.dashboardPalette.colors);
|
7418
|
+
});
|
7419
|
+
|
7420
|
+
it('should set drilldown options on drilldown chart', () => {
|
7421
|
+
jest.useFakeTimers();
|
7422
|
+
highchartsRenderer.isNewAngular = true;
|
7423
|
+
const chartSpy = jest.spyOn(Highcharts, 'chart').mockImplementation(() => {});
|
7424
|
+
|
7425
|
+
const chartOptions = {
|
7426
|
+
colors: [],
|
7427
|
+
chart: {
|
7428
|
+
},
|
7429
|
+
onlyText: true,
|
7430
|
+
drilldown: {
|
7431
|
+
},
|
7432
|
+
};
|
7433
|
+
const options = {};
|
7434
|
+
|
7435
|
+
highchartsRenderer.ptCreateElementAndDraw(chartOptions, options);
|
7436
|
+
|
7437
|
+
jest.runAllTimers();
|
7438
|
+
|
7439
|
+
expect(chartSpy).toHaveBeenCalledWith(
|
7440
|
+
expect.any(Object),
|
7441
|
+
expect.objectContaining({
|
7442
|
+
drilldown: expect.objectContaining({
|
7443
|
+
drillUpButton: expect.any(Object),
|
7444
|
+
breadcrumbs: expect.any(Object),
|
7445
|
+
}),
|
7446
|
+
}),
|
7447
|
+
);
|
7448
|
+
});
|
7449
|
+
|
7450
|
+
it('should return no data result if series is empty', () => {
|
7451
|
+
const chartOptions = {
|
7452
|
+
chart: {},
|
7453
|
+
series: [{ data: [] }, { data: [] }, {}],
|
7454
|
+
};
|
7455
|
+
const options = {};
|
7456
|
+
const noDataFnSpy = jest.spyOn(highchartsRenderer, 'getNoDataResult').mockImplementation(() => {});
|
7457
|
+
|
7458
|
+
highchartsRenderer.ptCreateElementAndDraw(chartOptions, options);
|
7459
|
+
|
7460
|
+
expect(noDataFnSpy).toHaveBeenCalled();
|
7461
|
+
expect(options.error_has_occurred).toBeTruthy();
|
7462
|
+
expect(options.error_params).toBe(highchartsRenderer.widgetPlaceholders.nodata);
|
7463
|
+
});
|
7464
|
+
|
7465
|
+
it('should return too much data result if series is too long', () => {
|
7466
|
+
const chartOptions = {
|
7467
|
+
chart: {},
|
7468
|
+
series: [{ data: new Array(1000) }, { data: new Array(1000) }, {}],
|
7469
|
+
};
|
7470
|
+
const options = {};
|
7471
|
+
const noDataFnSpy = jest.spyOn(highchartsRenderer, 'getNoDataResult').mockImplementation(() => {});
|
7472
|
+
|
7473
|
+
highchartsRenderer.ptCreateElementAndDraw(chartOptions, options);
|
7474
|
+
|
7475
|
+
expect(noDataFnSpy).toHaveBeenCalled();
|
7476
|
+
expect(options.error_has_occurred).toBeTruthy();
|
7477
|
+
expect(options.error_params).toBe(highchartsRenderer.widgetPlaceholders.tooMuchData);
|
7478
|
+
});
|
7479
|
+
|
7480
|
+
it('should set hcInstance on options with chart object for graph table renderer to use', () => {
|
7481
|
+
jest.useFakeTimers();
|
7482
|
+
jest.spyOn(Highcharts, 'chart').mockImplementation(() => ({ chart: true }));
|
7483
|
+
|
7484
|
+
const chartOptions = {
|
7485
|
+
chart: {},
|
7486
|
+
onlyText: true,
|
7487
|
+
};
|
7488
|
+
const options = {};
|
7489
|
+
|
7490
|
+
highchartsRenderer.ptCreateElementAndDraw(chartOptions, options);
|
7491
|
+
jest.runAllTimers();
|
7492
|
+
|
7493
|
+
expect(options.hcInstance).toBeDefined();
|
7494
|
+
});
|
7495
|
+
});
|
7496
|
+
|
7378
7497
|
describe('Function getNoDataResult', () => {
|
7379
7498
|
const container = $('<div class="noData-box"></div>');
|
7380
7499
|
|
@@ -8739,4 +8858,77 @@ describe('highcharts_renderer', () => {
|
|
8739
8858
|
});
|
8740
8859
|
});
|
8741
8860
|
|
8861
|
+
|
8862
|
+
describe('Function ptCreateSeriesToDrillDownChart', () => {
|
8863
|
+
let pivotData, chartOptions, additionOptions, opts;
|
8864
|
+
|
8865
|
+
beforeEach(() => {
|
8866
|
+
pivotData = {
|
8867
|
+
getColKeys: jest.fn(),
|
8868
|
+
getRowKeys: jest.fn(),
|
8869
|
+
getAggregator: jest.fn().mockReturnValue({
|
8870
|
+
value: jest.fn()
|
8871
|
+
})
|
8872
|
+
};
|
8873
|
+
|
8874
|
+
chartOptions = {
|
8875
|
+
chart: {
|
8876
|
+
type: 'pie'
|
8877
|
+
}
|
8878
|
+
};
|
8879
|
+
|
8880
|
+
additionOptions = {};
|
8881
|
+
opts = {};
|
8882
|
+
|
8883
|
+
highchartsRenderer.getOthersName = jest.fn();
|
8884
|
+
highchartsRenderer.getFormattedColKey = jest.fn();
|
8885
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded = jest.fn();
|
8886
|
+
});
|
8887
|
+
|
8888
|
+
it('should handle Hebrew characters in key', () => {
|
8889
|
+
pivotData.getColKeys.mockReturnValue(['שלום']);
|
8890
|
+
pivotData.getRowKeys.mockReturnValue(['row1']);
|
8891
|
+
pivotData.getAggregator().value.mockReturnValue(10);
|
8892
|
+
highchartsRenderer.getOthersName.mockReturnValue('Others');
|
8893
|
+
highchartsRenderer.getFormattedColKey.mockReturnValue('FormattedKey');
|
8894
|
+
|
8895
|
+
const result = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
8896
|
+
expect(result[0].data[0].initialName).toEqual('\u200Eשלום');
|
8897
|
+
});
|
8898
|
+
|
8899
|
+
it('should handle DR_OTHERS_KEY', () => {
|
8900
|
+
pivotData.getColKeys.mockReturnValue([highchartsRenderer.DR_OTHERS_KEY]);
|
8901
|
+
pivotData.getRowKeys.mockReturnValue(['row1']);
|
8902
|
+
pivotData.getAggregator().value.mockReturnValue(10);
|
8903
|
+
highchartsRenderer.getOthersName.mockReturnValue('Others');
|
8904
|
+
highchartsRenderer.getFormattedColKey.mockReturnValue('FormattedKey');
|
8905
|
+
|
8906
|
+
const result = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
8907
|
+
expect(result[0].data[0].initialName).toEqual('Others');
|
8908
|
+
});
|
8909
|
+
|
8910
|
+
it('should handle negative values when chart type is not pie', () => {
|
8911
|
+
chartOptions.chart.type = 'notPie';
|
8912
|
+
pivotData.getColKeys.mockReturnValue(['key1']);
|
8913
|
+
pivotData.getRowKeys.mockReturnValue(['row1']);
|
8914
|
+
pivotData.getAggregator().value.mockReturnValue(-10);
|
8915
|
+
highchartsRenderer.getOthersName.mockReturnValue('Others');
|
8916
|
+
highchartsRenderer.getFormattedColKey.mockReturnValue('FormattedKey');
|
8917
|
+
|
8918
|
+
const result = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
8919
|
+
expect(result[0].data[0].y).toEqual(-10);
|
8920
|
+
});
|
8921
|
+
|
8922
|
+
it('should handle numeric keys', () => {
|
8923
|
+
pivotData.getColKeys.mockReturnValue(['123']);
|
8924
|
+
pivotData.getRowKeys.mockReturnValue(['row1']);
|
8925
|
+
pivotData.getAggregator().value.mockReturnValue(10);
|
8926
|
+
highchartsRenderer.getOthersName.mockReturnValue('Others');
|
8927
|
+
highchartsRenderer.getFormattedColKey.mockReturnValue('FormattedKey');
|
8928
|
+
|
8929
|
+
const result = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
8930
|
+
expect(result[0].data[0].drilldown).toEqual(123);
|
8931
|
+
});
|
8932
|
+
});
|
8933
|
+
|
8742
8934
|
});
|