@@ -766,12 +766,34 @@ test('Style#setFilter', function(t) {
766766 style . on ( 'load' , function ( ) {
767767 style . dispatcher . broadcast = function ( key , value ) {
768768 t . equal ( key , 'update layers' ) ;
769- t . deepEqual ( value . map ( function ( layer ) { return layer . id ; } ) , [ 'symbol' ] ) ;
769+ t . deepEqual ( value [ 0 ] . id , 'symbol' ) ;
770+ t . deepEqual ( value [ 0 ] . filter , [ '==' , 'id' , 1 ] ) ;
771+ t . end ( ) ;
770772 } ;
771773
772774 style . setFilter ( 'symbol' , [ '==' , 'id' , 1 ] ) ;
773775 t . deepEqual ( style . getFilter ( 'symbol' ) , [ '==' , 'id' , 1 ] ) ;
774- t . end ( ) ;
776+ style . update ( { } , { } ) ; // trigger dispatcher broadcast
777+ } ) ;
778+ } ) ;
779+
780+ t . test ( 'sets again mutated filter' , function ( t ) {
781+ var style = createStyle ( ) ;
782+
783+ style . on ( 'load' , function ( ) {
784+ var filter = [ '==' , 'id' , 1 ] ;
785+ style . setFilter ( 'symbol' , filter ) ;
786+ style . update ( { } , { } ) ; // flush pending operations
787+
788+ style . dispatcher . broadcast = function ( key , value ) {
789+ t . equal ( key , 'update layers' ) ;
790+ t . deepEqual ( value [ 0 ] . id , 'symbol' ) ;
791+ t . deepEqual ( value [ 0 ] . filter , [ '==' , 'id' , 2 ] ) ;
792+ t . end ( ) ;
793+ } ;
794+ filter [ 2 ] = 2 ;
795+ style . setFilter ( 'symbol' , filter ) ;
796+ style . update ( { } , { } ) ; // trigger dispatcher broadcast
775797 } ) ;
776798 } ) ;
777799
0 commit comments