mirror of
https://github.com/apache/superset.git
synced 2026-04-20 00:24:38 +00:00
fix: onSave datasource raises React error (#8049)
* fix: datasource save raises React error * add test
This commit is contained in:
committed by
GitHub
parent
8773fdceb2
commit
5e0c91ef49
@@ -368,5 +368,12 @@ describe('MetricsControl', () => {
|
|||||||
wrapper.setProps({ ...props, columns: [] });
|
wrapper.setProps({ ...props, columns: [] });
|
||||||
expect(onChange.calledOnce).toEqual(false);
|
expect(onChange.calledOnce).toEqual(false);
|
||||||
});
|
});
|
||||||
|
it('Does not fail if no columns or savedMetrics are passed', () => {
|
||||||
|
const { wrapper } = setup({
|
||||||
|
savedMetrics: null,
|
||||||
|
columns: null,
|
||||||
|
});
|
||||||
|
expect(wrapper.exists('.metrics-select')).toEqual(true);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ const propTypes = {
|
|||||||
const defaultProps = {
|
const defaultProps = {
|
||||||
onChange: () => {},
|
onChange: () => {},
|
||||||
clearable: true,
|
clearable: true,
|
||||||
|
savedMetrics: [],
|
||||||
|
columns: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
function isDictionaryForAdhocMetric(value) {
|
function isDictionaryForAdhocMetric(value) {
|
||||||
@@ -62,7 +64,7 @@ function isDictionaryForAdhocMetric(value) {
|
|||||||
|
|
||||||
function columnsContainAllMetrics(value, nextProps) {
|
function columnsContainAllMetrics(value, nextProps) {
|
||||||
const columnNames = new Set(
|
const columnNames = new Set(
|
||||||
[...nextProps.columns, ...nextProps.savedMetrics]
|
[...(nextProps.columns || []), ...(nextProps.savedMetrics || [])]
|
||||||
// eslint-disable-next-line camelcase
|
// eslint-disable-next-line camelcase
|
||||||
.map(({ column_name, metric_name }) => (column_name || metric_name)),
|
.map(({ column_name, metric_name }) => (column_name || metric_name)),
|
||||||
);
|
);
|
||||||
@@ -243,7 +245,7 @@ export default class MetricsControl extends React.PureComponent {
|
|||||||
Object.keys(AGGREGATES).map(aggregate => ({ aggregate_name: aggregate })) :
|
Object.keys(AGGREGATES).map(aggregate => ({ aggregate_name: aggregate })) :
|
||||||
[];
|
[];
|
||||||
const options = [
|
const options = [
|
||||||
...columns,
|
...(columns || []),
|
||||||
...aggregates,
|
...aggregates,
|
||||||
...(savedMetrics || []),
|
...(savedMetrics || []),
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user