diff --git a/superset-frontend/cypress-base/cypress/integration/dashboard/filter.test.ts b/superset-frontend/cypress-base/cypress/integration/dashboard/filter.test.ts index 6afe2c6190..375f14dacd 100644 --- a/superset-frontend/cypress-base/cypress/integration/dashboard/filter.test.ts +++ b/superset-frontend/cypress-base/cypress/integration/dashboard/filter.test.ts @@ -70,8 +70,8 @@ describe('Dashboard filter', () => { } expect(requestFilter).deep.eq({ col: 'region', - op: '==', - val: 'South Asia', + op: 'IN', + val: ['South Asia'], }); }); }); diff --git a/superset-frontend/cypress-base/cypress/integration/dashboard/tabs.test.ts b/superset-frontend/cypress-base/cypress/integration/dashboard/tabs.test.ts index d4ec42e0df..85b8f51dee 100644 --- a/superset-frontend/cypress-base/cypress/integration/dashboard/tabs.test.ts +++ b/superset-frontend/cypress-base/cypress/integration/dashboard/tabs.test.ts @@ -121,8 +121,8 @@ describe('Dashboard tabs', () => { const requestParams = JSON.parse(requestBody.form_data as string); expect(requestParams.extra_filters[0]).deep.eq({ col: 'region', - op: '==', - val: 'South Asia', + op: 'IN', + val: ['South Asia'], }); }); }); @@ -136,8 +136,8 @@ describe('Dashboard tabs', () => { const requestParams = JSON.parse(requestBody.form_data as string); expect(requestParams.extra_filters[0]).deep.eq({ col: 'region', - op: '==', - val: 'South Asia', + op: 'IN', + val: ['South Asia'], }); expect(requestParams.viz_type).eq(LINE_CHART.viz); }); @@ -150,8 +150,8 @@ describe('Dashboard tabs', () => { cy.wait('@v1ChartData').then(({ request }) => { expect(request.body.queries[0].filters[0]).deep.eq({ col: 'region', - op: '==', - val: 'South Asia', + op: 'IN', + val: ['South Asia'], }); }); diff --git a/superset-frontend/src/visualizations/FilterBox/FilterBox.jsx b/superset-frontend/src/visualizations/FilterBox/FilterBox.jsx index cbe95664e8..59c906222c 100644 --- a/superset-frontend/src/visualizations/FilterBox/FilterBox.jsx +++ b/superset-frontend/src/visualizations/FilterBox/FilterBox.jsx @@ -22,7 +22,7 @@ import { debounce } from 'lodash'; import { max as d3Max } from 'd3-array'; import { AsyncCreatableSelect, CreatableSelect } from 'src/components/Select'; import Button from 'src/components/Button'; -import { t, SupersetClient } from '@superset-ui/core'; +import { t, SupersetClient, ensureIsArray } from '@superset-ui/core'; import { BOOL_FALSE_DISPLAY, @@ -158,10 +158,9 @@ class FilterBox extends React.PureComponent { if (options !== null) { if (Array.isArray(options)) { vals = options.map(opt => (typeof opt === 'string' ? opt : opt.value)); - } else if (options.value) { - vals = options.value; } else { - vals = options; + // must use array member for legacy extra_filters's value + vals = ensureIsArray(options.value ?? options); } }