@@ -29,9 +29,16 @@ import { esFilters } from '../../../common';
2929import { coreMock } from '../../../../../core/public/mocks' ;
3030const 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
3643describe ( 'filter_manager' , ( ) => {
3744 let updateSubscription : Subscription | undefined ;
@@ -224,6 +231,44 @@ 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+ expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 0 ) ;
242+ } ) ;
243+
244+ test ( 'set filter with no state, and no pin' , async ( ) => {
245+ const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 38 ) ;
246+ f1 . $state = undefined ;
247+
248+ filterManager . setFilters ( [ f1 ] , false ) ;
249+ expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 0 ) ;
250+ expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 1 ) ;
251+ } ) ;
252+
253+ test ( 'set filters with default pin' , async ( ) => {
254+ const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 38 ) ;
255+ f1 . $state = undefined ;
256+ setupMock . uiSettings . get . mockImplementationOnce ( uiSettingsMock ( true ) ) ;
257+
258+ filterManager . setFilters ( [ f1 ] ) ;
259+ expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 1 ) ;
260+ expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 0 ) ;
261+ } ) ;
262+
263+ test ( 'set filters without default pin' , async ( ) => {
264+ const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 38 ) ;
265+ f1 . $state = undefined ;
266+
267+ setupMock . uiSettings . get . mockImplementationOnce ( uiSettingsMock ( false ) ) ;
268+ filterManager . setFilters ( [ f1 ] ) ;
269+ expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 0 ) ;
270+ expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 1 ) ;
271+ } ) ;
227272 } ) ;
228273
229274 describe ( 'add filters' , ( ) => {
0 commit comments