@@ -184,14 +184,15 @@ describe('filter_manager', () => {
184184 expect ( updateListener . callCount ) . toBe ( 1 ) ;
185185 } ) ;
186186
187- test ( 'app state should accept array' , async ( ) => {
187+ test ( 'app state should accept array and preserve order ' , async ( ) => {
188188 const f1 = getFilter ( esFilters . FilterStateStore . APP_STATE , false , false , 'age' , 34 ) ;
189189 const f2 = getFilter ( esFilters . FilterStateStore . APP_STATE , false , false , 'gender' , 'female' ) ;
190+
190191 filterManager . addFilters ( [ f1 ] ) ;
191192 filterManager . addFilters ( [ f2 ] ) ;
192193 const appFilters = filterManager . getAppFilters ( ) ;
193194 expect ( appFilters ) . toHaveLength ( 2 ) ;
194- expect ( appFilters ) . toEqual ( [ f2 , f1 ] ) ;
195+ expect ( appFilters ) . toEqual ( [ f1 , f2 ] ) ;
195196 expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 0 ) ;
196197 } ) ;
197198
@@ -206,7 +207,7 @@ describe('filter_manager', () => {
206207 expect ( updateListener . callCount ) . toBe ( 1 ) ;
207208 } ) ;
208209
209- test ( 'global state should be accept array' , async ( ) => {
210+ test ( 'global state should be accept array and preserve order ' , async ( ) => {
210211 const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 34 ) ;
211212 const f2 = getFilter (
212213 esFilters . FilterStateStore . GLOBAL_STATE ,
@@ -215,11 +216,36 @@ describe('filter_manager', () => {
215216 'gender' ,
216217 'female'
217218 ) ;
219+
218220 filterManager . addFilters ( [ f1 , f2 ] ) ;
219221 expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 0 ) ;
220222 const globalFilters = filterManager . getGlobalFilters ( ) ;
221223 expect ( globalFilters ) . toHaveLength ( 2 ) ;
222- expect ( globalFilters ) . toEqual ( [ f2 , f1 ] ) ;
224+ expect ( globalFilters ) . toEqual ( [ f1 , f2 ] ) ;
225+ } ) ;
226+
227+ test ( 'mixed filters: global filters should stay in the beginning' , async ( ) => {
228+ const f1 = getFilter ( esFilters . FilterStateStore . GLOBAL_STATE , false , false , 'age' , 34 ) ;
229+ const f2 = getFilter ( esFilters . FilterStateStore . APP_STATE , false , false , 'gender' , 'female' ) ;
230+ filterManager . addFilters ( [ f1 , f2 ] ) ;
231+ const filters = filterManager . getFilters ( ) ;
232+ expect ( filters ) . toHaveLength ( 2 ) ;
233+ expect ( filters ) . toEqual ( [ f1 , f2 ] ) ;
234+ } ) ;
235+
236+ test ( 'mixed filters: global filters should move to the beginning' , async ( ) => {
237+ const f1 = getFilter ( esFilters . FilterStateStore . APP_STATE , false , false , 'age' , 34 ) ;
238+ const f2 = getFilter (
239+ esFilters . FilterStateStore . GLOBAL_STATE ,
240+ false ,
241+ false ,
242+ 'gender' ,
243+ 'female'
244+ ) ;
245+ filterManager . addFilters ( [ f1 , f2 ] ) ;
246+ const filters = filterManager . getFilters ( ) ;
247+ expect ( filters ) . toHaveLength ( 2 ) ;
248+ expect ( filters ) . toEqual ( [ f2 , f1 ] ) ;
223249 } ) ;
224250
225251 test ( 'add multiple filters at once' , async ( ) => {
0 commit comments