fix: Currency formatting in Table raw mode (#25248)

This commit is contained in:
Kamil Gabryjelski
2023-09-11 16:48:39 +02:00
committed by GitHub
parent 894f250229
commit ea21e800a7
4 changed files with 74 additions and 2 deletions

View File

@@ -123,6 +123,47 @@ describe('plugin-chart-table', () => {
expect(cells[4]).toHaveTextContent('$ 2.47k');
});
it('render raw data', () => {
const props = transformProps({
...testData.raw,
rawFormData: { ...testData.raw.rawFormData },
});
render(
ProviderWrapper({
children: <TableChart {...props} sticky={false} />,
}),
);
const cells = document.querySelectorAll('td');
expect(document.querySelectorAll('th')[0]).toHaveTextContent('num');
expect(cells[0]).toHaveTextContent('1234');
expect(cells[1]).toHaveTextContent('10000');
expect(cells[1]).toHaveTextContent('0');
});
it('render raw data with currencies', () => {
const props = transformProps({
...testData.raw,
rawFormData: {
...testData.raw.rawFormData,
column_config: {
num: {
currencyFormat: { symbol: 'USD', symbolPosition: 'prefix' },
},
},
},
});
render(
ProviderWrapper({
children: <TableChart {...props} sticky={false} />,
}),
);
const cells = document.querySelectorAll('td');
expect(document.querySelectorAll('th')[0]).toHaveTextContent('num');
expect(cells[0]).toHaveTextContent('$ 1.23k');
expect(cells[1]).toHaveTextContent('$ 10k');
expect(cells[2]).toHaveTextContent('$ 0');
});
it('render empty data', () => {
wrap.setProps({ ...transformProps(testData.empty), sticky: false });
tree = wrap.render();

View File

@@ -21,6 +21,7 @@ import {
ChartProps,
DatasourceType,
GenericDataType,
QueryMode,
supersetTheme,
} from '@superset-ui/core';
import { TableChartProps, TableChartFormData } from '../src/types';
@@ -173,6 +174,33 @@ const advanced: TableChartProps = {
],
};
const raw = {
...advanced,
rawFormData: {
...advanced.rawFormData,
query_mode: QueryMode.raw,
columns: ['num'],
},
queriesData: [
{
...basicQueryResult,
colnames: ['num'],
coltypes: [GenericDataType.NUMERIC],
data: [
{
num: 1234,
},
{
num: 10000,
},
{
num: 0,
},
],
},
],
};
const advancedWithCurrency = {
...advanced,
datasource: {
@@ -198,4 +226,5 @@ export default {
advanced,
advancedWithCurrency,
empty,
raw,
};