Skip to content

Commit

Permalink
fix: Currency formatting in Table raw mode (#25248)
Browse files Browse the repository at this point in the history
  • Loading branch information
kgabryje authored Sep 11, 2023
1 parent 894f250 commit ea21e80
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ const processColumns = memoizeOne(function processColumns(
} else if (isPercentMetric) {
// percent metrics have a default format
formatter = getNumberFormatter(numberFormat || PERCENT_3_POINT);
} else if (isMetric || (isNumber && numberFormat)) {
} else if (isMetric || (isNumber && (numberFormat || currency))) {
formatter = currency
? new CurrencyFormatter({
d3Format: numberFormat,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ export default function isEqualColumns(
JSON.stringify(a.formData.extraFilters || null) ===
JSON.stringify(b.formData.extraFilters || null) &&
JSON.stringify(a.formData.extraFormData || null) ===
JSON.stringify(b.formData.extraFormData || null)
JSON.stringify(b.formData.extraFormData || null) &&
JSON.stringify(a.rawFormData.column_config || null) ===
JSON.stringify(b.rawFormData.column_config || null)
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
29 changes: 29 additions & 0 deletions superset-frontend/plugins/plugin-chart-table/test/testData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import {
ChartProps,
DatasourceType,
GenericDataType,
QueryMode,
supersetTheme,
} from '@superset-ui/core';
import { TableChartProps, TableChartFormData } from '../src/types';
Expand Down Expand Up @@ -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: {
Expand All @@ -198,4 +226,5 @@ export default {
advanced,
advancedWithCurrency,
empty,
raw,
};

0 comments on commit ea21e80

Please sign in to comment.