@@ -228,12 +228,15 @@ describe('filter_manager', () => {
228228 expect ( appStateStub . filters . length ) . toBe ( 1 ) ;
229229 } ) ;
230230
231- test ( 'app state should accept array' , async ( ) => {
231+ test ( 'app state should accept array and preserve order ' , async ( ) => {
232232 const f1 = getFilter ( FilterStateStore . APP_STATE , false , false , 'age' , 34 ) ;
233233 const f2 = getFilter ( FilterStateStore . APP_STATE , false , false , 'gender' , 'female' ) ;
234+
234235 filterManager . addFilters ( [ f1 ] ) ;
235236 filterManager . addFilters ( [ f2 ] ) ;
236- expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 2 ) ;
237+ const appFilters = filterManager . getAppFilters ( ) ;
238+ expect ( appFilters ) . toHaveLength ( 2 ) ;
239+ expect ( appFilters ) . toEqual ( [ f1 , f2 ] ) ;
237240 expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 0 ) ;
238241 expect ( appStateStub . filters . length ) . toBe ( 2 ) ;
239242 } ) ;
@@ -248,13 +251,33 @@ describe('filter_manager', () => {
248251 expect ( globalStateStub . filters . length ) . toBe ( 1 ) ;
249252 } ) ;
250253
251- test ( 'global state should be accept array' , async ( ) => {
254+ test ( 'global state should be accept array and preserve order ' , async ( ) => {
252255 const f1 = getFilter ( FilterStateStore . GLOBAL_STATE , false , false , 'age' , 34 ) ;
253256 const f2 = getFilter ( FilterStateStore . GLOBAL_STATE , false , false , 'gender' , 'female' ) ;
257+
254258 filterManager . addFilters ( [ f1 , f2 ] ) ;
255259 expect ( filterManager . getAppFilters ( ) ) . toHaveLength ( 0 ) ;
256- expect ( filterManager . getGlobalFilters ( ) ) . toHaveLength ( 2 ) ;
257- expect ( globalStateStub . filters . length ) . toBe ( 2 ) ;
260+ const globalFilters = filterManager . getGlobalFilters ( ) ;
261+ expect ( globalFilters ) . toHaveLength ( 2 ) ;
262+ expect ( globalFilters ) . toEqual ( [ f1 , f2 ] ) ;
263+ } ) ;
264+
265+ test ( 'mixed filters: global filters should stay in the beginning' , async ( ) => {
266+ const f1 = getFilter ( FilterStateStore . GLOBAL_STATE , false , false , 'age' , 34 ) ;
267+ const f2 = getFilter ( FilterStateStore . APP_STATE , false , false , 'gender' , 'female' ) ;
268+ filterManager . addFilters ( [ f1 , f2 ] ) ;
269+ const filters = filterManager . getFilters ( ) ;
270+ expect ( filters ) . toHaveLength ( 2 ) ;
271+ expect ( filters ) . toEqual ( [ f1 , f2 ] ) ;
272+ } ) ;
273+
274+ test ( 'mixed filters: global filters should move to the beginning' , async ( ) => {
275+ const f1 = getFilter ( FilterStateStore . APP_STATE , false , false , 'age' , 34 ) ;
276+ const f2 = getFilter ( FilterStateStore . GLOBAL_STATE , false , false , 'gender' , 'female' ) ;
277+ filterManager . addFilters ( [ f1 , f2 ] ) ;
278+ const filters = filterManager . getFilters ( ) ;
279+ expect ( filters ) . toHaveLength ( 2 ) ;
280+ expect ( filters ) . toEqual ( [ f2 , f1 ] ) ;
258281 } ) ;
259282
260283 test ( 'add multiple filters at once' , async ( ) => {
0 commit comments