[Feature] Dashboard filter indicators (#7908)

* dashboard filter indicators

* add/fix unit tests
This commit is contained in:
Grace Guo
2019-08-21 17:34:08 -07:00
committed by GitHub
parent 0fd7364503
commit 40776bd547
74 changed files with 2455 additions and 454 deletions

View File

@@ -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],
});
});
});
});