Skip to content

Commit c0b6cbe

Browse files
committed
add tests
1 parent 7017440 commit c0b6cbe

File tree

1 file changed

+44
-3
lines changed

1 file changed

+44
-3
lines changed

src/plugins/data/public/query/filter_manager/filter_manager.test.ts

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,16 @@ import { esFilters } from '../../../common';
2929
import { coreMock } from '../../../../../core/public/mocks';
3030
const setupMock = coreMock.createSetup();
3131

32-
setupMock.uiSettings.get.mockImplementation((key: string) => {
33-
return true;
34-
});
32+
const uiSettingsMock = (pinnedByDefault: boolean) => (key: string) => {
33+
switch (key) {
34+
case 'filters:pinnedByDefault':
35+
return pinnedByDefault;
36+
default:
37+
throw new Error(`Unexpected uiSettings key in FilterManager mock: ${key}`);
38+
}
39+
};
40+
41+
setupMock.uiSettings.get.mockImplementation(uiSettingsMock(true));
3542

3643
describe('filter_manager', () => {
3744
let updateSubscription: Subscription | undefined;
@@ -224,6 +231,40 @@ describe('filter_manager', () => {
224231
expect(newGlobalFilters).toHaveLength(2);
225232
expect(newAppFilters).toHaveLength(1);
226233
});
234+
235+
test('set filter with no state, and force pin', async () => {
236+
const f1 = getFilter(esFilters.FilterStateStore.GLOBAL_STATE, false, false, 'age', 38);
237+
f1.$state = undefined;
238+
239+
filterManager.setFilters([f1], true);
240+
expect(filterManager.getGlobalFilters()).toHaveLength(1);
241+
});
242+
243+
test('set filter with no state, and no pin', async () => {
244+
const f1 = getFilter(esFilters.FilterStateStore.GLOBAL_STATE, false, false, 'age', 38);
245+
f1.$state = undefined;
246+
247+
filterManager.setFilters([f1], false);
248+
expect(filterManager.getAppFilters()).toHaveLength(1);
249+
});
250+
251+
test('set filters with default pin', async () => {
252+
const f1 = getFilter(esFilters.FilterStateStore.GLOBAL_STATE, false, false, 'age', 38);
253+
f1.$state = undefined;
254+
setupMock.uiSettings.get.mockImplementationOnce(uiSettingsMock(true));
255+
256+
filterManager.setFilters([f1]);
257+
expect(filterManager.getGlobalFilters()).toHaveLength(1);
258+
});
259+
260+
test('set filters without default pin', async () => {
261+
const f1 = getFilter(esFilters.FilterStateStore.GLOBAL_STATE, false, false, 'age', 38);
262+
f1.$state = undefined;
263+
264+
setupMock.uiSettings.get.mockImplementationOnce(uiSettingsMock(false));
265+
filterManager.setFilters([f1]);
266+
expect(filterManager.getAppFilters()).toHaveLength(1);
267+
});
227268
});
228269

229270
describe('add filters', () => {

0 commit comments

Comments
 (0)