mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
[Feature] Dashboard filter indicators (#7908)
* dashboard filter indicators * add/fix unit tests
This commit is contained in:
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
import {
|
||||
ADD_SLICE,
|
||||
CHANGE_FILTER,
|
||||
ON_CHANGE,
|
||||
ON_SAVE,
|
||||
REMOVE_SLICE,
|
||||
@@ -52,16 +51,7 @@ describe('dashboardState reducer', () => {
|
||||
{ sliceIds: [1, 2], filters: {} },
|
||||
{ type: REMOVE_SLICE, sliceId: 2 },
|
||||
),
|
||||
).toEqual({ sliceIds: [1], refresh: false, filters: {} });
|
||||
});
|
||||
|
||||
it('should reset filters if a removed slice is a filter', () => {
|
||||
expect(
|
||||
dashboardStateReducer(
|
||||
{ sliceIds: [1, 2], filters: { 2: {}, 1: {} } },
|
||||
{ type: REMOVE_SLICE, sliceId: 2 },
|
||||
),
|
||||
).toEqual({ sliceIds: [1], filters: { 1: {} }, refresh: true });
|
||||
).toEqual({ sliceIds: [1], filters: {} });
|
||||
});
|
||||
|
||||
it('should toggle fav star', () => {
|
||||
@@ -141,104 +131,4 @@ describe('dashboardState reducer', () => {
|
||||
updatedColorScheme: false,
|
||||
});
|
||||
});
|
||||
|
||||
describe('change filter', () => {
|
||||
it('should add a new filter if it does not exist', () => {
|
||||
expect(
|
||||
dashboardStateReducer(
|
||||
{
|
||||
filters: {},
|
||||
sliceIds: [1],
|
||||
},
|
||||
{
|
||||
type: CHANGE_FILTER,
|
||||
chart: { id: 1, formData: { groupby: 'column' } },
|
||||
col: 'column',
|
||||
vals: ['b', 'a'],
|
||||
refresh: true,
|
||||
merge: true,
|
||||
},
|
||||
),
|
||||
).toEqual({
|
||||
filters: { 1: { column: ['b', 'a'] } },
|
||||
refresh: true,
|
||||
sliceIds: [1],
|
||||
});
|
||||
});
|
||||
|
||||
it('should overwrite a filter if merge is false', () => {
|
||||
expect(
|
||||
dashboardStateReducer(
|
||||
{
|
||||
filters: {
|
||||
1: { column: ['z'] },
|
||||
},
|
||||
sliceIds: [1],
|
||||
},
|
||||
{
|
||||
type: CHANGE_FILTER,
|
||||
chart: { id: 1, formData: { groupby: 'column' } },
|
||||
col: 'column',
|
||||
vals: ['b', 'a'],
|
||||
refresh: true,
|
||||
merge: false,
|
||||
},
|
||||
),
|
||||
).toEqual({
|
||||
filters: { 1: { column: ['b', 'a'] } },
|
||||
refresh: true,
|
||||
sliceIds: [1],
|
||||
});
|
||||
});
|
||||
|
||||
it('should merge a filter if merge is true', () => {
|
||||
expect(
|
||||
dashboardStateReducer(
|
||||
{
|
||||
filters: {
|
||||
1: { column: ['z'] },
|
||||
},
|
||||
sliceIds: [1],
|
||||
},
|
||||
{
|
||||
type: CHANGE_FILTER,
|
||||
chart: { id: 1, formData: { groupby: 'column' } },
|
||||
col: 'column',
|
||||
vals: ['b', 'a'],
|
||||
refresh: true,
|
||||
merge: true,
|
||||
},
|
||||
),
|
||||
).toEqual({
|
||||
filters: { 1: { column: ['z', 'b', 'a'] } },
|
||||
refresh: true,
|
||||
sliceIds: [1],
|
||||
});
|
||||
});
|
||||
|
||||
it('should remove the filter if values are empty', () => {
|
||||
expect(
|
||||
dashboardStateReducer(
|
||||
{
|
||||
filters: {
|
||||
1: { column: ['z'] },
|
||||
},
|
||||
sliceIds: [1],
|
||||
},
|
||||
{
|
||||
type: CHANGE_FILTER,
|
||||
chart: { id: 1, formData: { groupby: 'column' } },
|
||||
col: 'column',
|
||||
vals: [],
|
||||
refresh: true,
|
||||
merge: false,
|
||||
},
|
||||
),
|
||||
).toEqual({
|
||||
filters: {},
|
||||
refresh: true,
|
||||
sliceIds: [1],
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user