@@ -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 ;
@@ -170,6 +177,44 @@ describe('filter_manager', () => {
170177 expect ( fetchStub ) . toBeCalledTimes ( 0 ) ;
171178 expect ( updateStub ) . toBeCalledTimes ( 1 ) ;
172179 } ) ;
180+
181+ test ( 'set filter with no state, and force pin' , async ( ) => {
182+ const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 38 ) ;
183+ f1 . $state = undefined ;
184+
185+ filterManager . setFilters ( [ f1 ] , true ) ;
186+ expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 1 ) ;
187+ expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 0 ) ;
188+ } ) ;
189+
190+ test ( 'set filter with no state, and no pin' , async ( ) => {
191+ const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 38 ) ;
192+ f1 . $state = undefined ;
193+
194+ filterManager . setFilters ( [ f1 ] , false ) ;
195+ expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 0 ) ;
196+ expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 1 ) ;
197+ } ) ;
198+
199+ test ( 'set filters with default pin' , async ( ) => {
200+ const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 38 ) ;
201+ f1 . $state = undefined ;
202+ setupMock . uiSettings . get . mockImplementationOnce ( uiSettingsMock ( true ) ) ;
203+
204+ filterManager . setFilters ( [ f1 ] ) ;
205+ expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 1 ) ;
206+ expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 0 ) ;
207+ } ) ;
208+
209+ test ( 'set filters without default pin' , async ( ) => {
210+ const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 38 ) ;
211+ f1 . $state = undefined ;
212+
213+ setupMock . uiSettings . get . mockImplementationOnce ( uiSettingsMock ( false ) ) ;
214+ filterManager . setFilters ( [ f1 ] ) ;
215+ expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 0 ) ;
216+ expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 1 ) ;
217+ } ) ;
173218 } ) ;
174219
175220 describe ( 'add filters' , ( ) => {
0 commit comments