fix: null dates in table chart (#17974)
This commit is contained in:
parent
3a9bd12e3d
commit
1e544ce531
|
|
@ -23,6 +23,7 @@ import {
|
|||
getNumberFormatter,
|
||||
} from '@superset-ui/core';
|
||||
import { DataColumnMeta } from '../types';
|
||||
import DateWithFormatter from './DateWithFormatter';
|
||||
|
||||
const xss = new FilterXSS({
|
||||
whiteList: {
|
||||
|
|
@ -62,7 +63,12 @@ function formatValue(
|
|||
return [false, ''];
|
||||
}
|
||||
// render null as `N/A`
|
||||
if (value === null) {
|
||||
if (
|
||||
value === null ||
|
||||
// null values in temporal columns are wrapped in a Date object, so make sure we
|
||||
// handle them here too
|
||||
(value instanceof DateWithFormatter && value.input === null)
|
||||
) {
|
||||
return [false, 'N/A'];
|
||||
}
|
||||
if (formatter) {
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ describe('plugin-chart-table', () => {
|
|||
);
|
||||
tree = wrap.render(); // returns a CheerioWrapper with jQuery-like API
|
||||
const cells = tree.find('td');
|
||||
expect(cells).toHaveLength(8);
|
||||
expect(cells).toHaveLength(12);
|
||||
expect(cells.eq(0).text()).toEqual('2020-01-01 12:34:56');
|
||||
expect(cells.eq(1).text()).toEqual('Michael');
|
||||
// number is not in `metrics` list, so it should output raw value
|
||||
|
|
@ -85,6 +85,7 @@ describe('plugin-chart-table', () => {
|
|||
// should not render column with `.` in name as `undefined`
|
||||
expect(cells.eq(3).text()).toEqual('foo');
|
||||
expect(cells.eq(6).text()).toEqual('2467');
|
||||
expect(cells.eq(8).text()).toEqual('N/A');
|
||||
});
|
||||
|
||||
it('render advanced data', () => {
|
||||
|
|
|
|||
|
|
@ -111,6 +111,13 @@ const basic: TableChartProps = {
|
|||
'%pct_nice': 0.00001,
|
||||
'abc.com': 'bar',
|
||||
},
|
||||
{
|
||||
__timestamp: null,
|
||||
name: 'Maria',
|
||||
sum__num: 12342,
|
||||
'%pct_nice': 0.341,
|
||||
'abc.com': 'baz',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue