From 11a1d133bd88b1396487ed2efa15cf31378c0d15 Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Thu, 19 May 2022 09:09:33 +0300 Subject: [PATCH] fix types and tests --- .../superset-ui-chart-controls/src/types.ts | 6 ++ .../test/types.test.ts | 61 +++++++++++-------- .../controlUtils/getSectionsToRender.ts | 4 +- 3 files changed, 44 insertions(+), 27 deletions(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/types.ts b/superset-frontend/packages/superset-ui-chart-controls/src/types.ts index 6434026d00cdd..53e3a198bd7ce 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/types.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/types.ts @@ -413,3 +413,9 @@ export function isAdhocColumn( ): column is AdhocColumn { return 'label' in column && 'sqlExpression' in column; } + +export function isControlPanelSectionConfig( + section: ControlPanelSectionConfig | null, +): section is ControlPanelSectionConfig { + return section !== null; +} diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/types.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/types.test.ts index bd3197210e72e..5c53fbcf10c60 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/test/types.test.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/test/types.test.ts @@ -18,10 +18,12 @@ */ import { AdhocColumn } from '@superset-ui/core'; import { + ColumnMeta, + ControlPanelSectionConfig, isAdhocColumn, isColumnMeta, + isControlPanelSectionConfig, isSavedExpression, - ColumnMeta, } from '../src'; const ADHOC_COLUMN: AdhocColumn = { @@ -37,37 +39,46 @@ const SAVED_EXPRESSION: ColumnMeta = { column_name: 'Saved expression', expression: 'case when 1 = 1 then 1 else 2 end', }; +const CONTROL_PANEL_SECTION_CONFIG: ControlPanelSectionConfig = { + label: 'My Section', + description: 'My Description', + controlSetRows: [], +}; -describe('isColumnMeta', () => { - it('returns false for AdhocColumn', () => { - expect(isColumnMeta(ADHOC_COLUMN)).toEqual(false); - }); +test('isColumnMeta returns false for AdhocColumn', () => { + expect(isColumnMeta(ADHOC_COLUMN)).toEqual(false); +}); - it('returns true for ColumnMeta', () => { - expect(isColumnMeta(COLUMN_META)).toEqual(true); - }); +test('isColumnMeta returns true for ColumnMeta', () => { + expect(isColumnMeta(COLUMN_META)).toEqual(true); }); -describe('isAdhocColumn', () => { - it('returns true for AdhocColumn', () => { - expect(isAdhocColumn(ADHOC_COLUMN)).toEqual(true); - }); +test('isAdhocColumn returns true for AdhocColumn', () => { + expect(isAdhocColumn(ADHOC_COLUMN)).toEqual(true); +}); - it('returns false for ColumnMeta', () => { - expect(isAdhocColumn(COLUMN_META)).toEqual(false); - }); +test('isAdhocColumn returns false for ColumnMeta', () => { + expect(isAdhocColumn(COLUMN_META)).toEqual(false); }); -describe('isSavedExpression', () => { - it('returns false for AdhocColumn', () => { - expect(isSavedExpression(ADHOC_COLUMN)).toEqual(false); - }); +test('isSavedExpression returns false for AdhocColumn', () => { + expect(isSavedExpression(ADHOC_COLUMN)).toEqual(false); +}); - it('returns false for ColumnMeta without expression', () => { - expect(isSavedExpression(COLUMN_META)).toEqual(false); - }); +test('isSavedExpression returns false for ColumnMeta without expression', () => { + expect(isSavedExpression(COLUMN_META)).toEqual(false); +}); + +test('isSavedExpression returns true for ColumnMeta with expression', () => { + expect(isSavedExpression(SAVED_EXPRESSION)).toEqual(true); +}); + +test('isControlPanelSectionConfig returns true for section', () => { + expect(isControlPanelSectionConfig(CONTROL_PANEL_SECTION_CONFIG)).toEqual( + true, + ); +}); - it('returns true for ColumnMeta with expression', () => { - expect(isSavedExpression(SAVED_EXPRESSION)).toEqual(true); - }); +test('isControlPanelSectionConfig returns true for null value', () => { + expect(isControlPanelSectionConfig(null)).toEqual(false); }); diff --git a/superset-frontend/src/explore/controlUtils/getSectionsToRender.ts b/superset-frontend/src/explore/controlUtils/getSectionsToRender.ts index 244114fc40913..c82833f4705b1 100644 --- a/superset-frontend/src/explore/controlUtils/getSectionsToRender.ts +++ b/superset-frontend/src/explore/controlUtils/getSectionsToRender.ts @@ -24,6 +24,7 @@ import { import { ControlPanelConfig, expandControlConfig, + isControlPanelSectionConfig, } from '@superset-ui/chart-controls'; import * as SECTIONS from 'src/explore/controlPanels/sections'; @@ -60,8 +61,7 @@ const getMemoizedSectionsToRender = memoizeOne( : ['granularity_sqla', 'time_grain_sqla']; return [datasourceAndVizType] - .concat(controlPanelSections) - .filter(section => !!section) + .concat(controlPanelSections.filter(isControlPanelSectionConfig)) .map(section => { const { controlSetRows } = section; return {