From b93e58b621d30fe1ec8ff6b090fe46c12ee3a28d Mon Sep 17 00:00:00 2001 From: Taylor Chen Date: Fri, 18 Feb 2022 07:11:21 -0500 Subject: [PATCH 1/5] fix(altered-modal): displayed the metric value in altered modal correctly --- superset-frontend/src/components/AlteredSliceTag/index.jsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/superset-frontend/src/components/AlteredSliceTag/index.jsx b/superset-frontend/src/components/AlteredSliceTag/index.jsx index 4601992a22808..76277fec4e14e 100644 --- a/superset-frontend/src/components/AlteredSliceTag/index.jsx +++ b/superset-frontend/src/components/AlteredSliceTag/index.jsx @@ -134,6 +134,10 @@ export default class AlteredSliceTag extends React.Component { if (controlsMap[key]?.type === 'CollectionControl') { return value.map(v => safeStringify(v)).join(', '); } + if (controlsMap[key]?.type === 'MetricsControl' && Array.isArray(value)) { + const formattedValue = value.map((v) => v.label ? v.label : v); + return formattedValue.length ? formattedValue.join(', ') : '[]'; + } if (typeof value === 'boolean') { return value ? 'true' : 'false'; } From 1657a7de83c6e0b481150cc16df00d15852ec596 Mon Sep 17 00:00:00 2001 From: Taylor Chen Date: Fri, 18 Feb 2022 07:27:02 -0500 Subject: [PATCH 2/5] fix(refactor): resolved the code style issue --- superset-frontend/src/components/AlteredSliceTag/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset-frontend/src/components/AlteredSliceTag/index.jsx b/superset-frontend/src/components/AlteredSliceTag/index.jsx index 76277fec4e14e..052903ff3e19e 100644 --- a/superset-frontend/src/components/AlteredSliceTag/index.jsx +++ b/superset-frontend/src/components/AlteredSliceTag/index.jsx @@ -135,7 +135,7 @@ export default class AlteredSliceTag extends React.Component { return value.map(v => safeStringify(v)).join(', '); } if (controlsMap[key]?.type === 'MetricsControl' && Array.isArray(value)) { - const formattedValue = value.map((v) => v.label ? v.label : v); + const formattedValue = value.map(v => v.label ? v.label : v); return formattedValue.length ? formattedValue.join(', ') : '[]'; } if (typeof value === 'boolean') { From 11107fe47d9fa06ea4b792e40eec8e78a7f1880d Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Fri, 18 Feb 2022 16:16:49 -0700 Subject: [PATCH 3/5] =?UTF-8?q?Linting=20=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- superset-frontend/src/components/AlteredSliceTag/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset-frontend/src/components/AlteredSliceTag/index.jsx b/superset-frontend/src/components/AlteredSliceTag/index.jsx index 052903ff3e19e..051412fcd8f1a 100644 --- a/superset-frontend/src/components/AlteredSliceTag/index.jsx +++ b/superset-frontend/src/components/AlteredSliceTag/index.jsx @@ -135,7 +135,7 @@ export default class AlteredSliceTag extends React.Component { return value.map(v => safeStringify(v)).join(', '); } if (controlsMap[key]?.type === 'MetricsControl' && Array.isArray(value)) { - const formattedValue = value.map(v => v.label ? v.label : v); + const formattedValue = value.map(v => (v.label ? v.label : v)); return formattedValue.length ? formattedValue.join(', ') : '[]'; } if (typeof value === 'boolean') { From a849fdd79f460072cd2e2ec5ffead648542f4807 Mon Sep 17 00:00:00 2001 From: Taylor Chen Date: Sat, 19 Feb 2022 17:22:32 -0500 Subject: [PATCH 4/5] fix(altered-modal): Added a test case for metrics field --- .../AlteredSliceTag/AlteredSliceTag.test.jsx | 10 ++++++++++ .../components/AlteredSliceTag/AlteredSliceTagMocks.js | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx index d4b19be02192c..f2399694fb554 100644 --- a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx +++ b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx @@ -218,6 +218,16 @@ describe('AlteredSliceTag', () => { ).toBe(expected); }); + it('returns Metrics if the field type is metrics', () => { + const value = [{ + label: "SUM(Sales)", + }]; + const expected = "SUM(Sales)"; + expect( + wrapper.instance().formatValue(value, "metrics", controlsMap), + ).toBe(expected); + }); + it('stringifies objects', () => { const value = { 1: 2, alpha: 'bravo' }; const expected = '{"1":2,"alpha":"bravo"}'; diff --git a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTagMocks.js b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTagMocks.js index a356a3db83562..be71efb3ac19a 100644 --- a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTagMocks.js +++ b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTagMocks.js @@ -159,6 +159,14 @@ export const fakePluginControls = { default: null, }, }, + { + name: 'metrics', + config: { + type: "MetricsControl", + label: 'Fake Metrics', + default: null, + }, + }, ], ], }, From bb2706289193c965f97b68c9ea58d30097b1afa3 Mon Sep 17 00:00:00 2001 From: Taylor Chen Date: Sat, 19 Feb 2022 17:30:31 -0500 Subject: [PATCH 5/5] fix(altered-modal): fix lint issue --- .../AlteredSliceTag/AlteredSliceTag.test.jsx | 12 +++++++----- .../AlteredSliceTag/AlteredSliceTagMocks.js | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx index f2399694fb554..6f5890018ce6c 100644 --- a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx +++ b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx @@ -219,12 +219,14 @@ describe('AlteredSliceTag', () => { }); it('returns Metrics if the field type is metrics', () => { - const value = [{ - label: "SUM(Sales)", - }]; - const expected = "SUM(Sales)"; + const value = [ + { + label: 'SUM(Sales)', + }, + ]; + const expected = 'SUM(Sales)'; expect( - wrapper.instance().formatValue(value, "metrics", controlsMap), + wrapper.instance().formatValue(value, 'metrics', controlsMap), ).toBe(expected); }); diff --git a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTagMocks.js b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTagMocks.js index be71efb3ac19a..90b243f9914f3 100644 --- a/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTagMocks.js +++ b/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTagMocks.js @@ -162,7 +162,7 @@ export const fakePluginControls = { { name: 'metrics', config: { - type: "MetricsControl", + type: 'MetricsControl', label: 'Fake Metrics', default: null, },