@@ -194,6 +194,35 @@ describe('Filter: orderBy', function() {
194194 it ( 'should sort mixed array of objects and values in a stable way' , function ( ) {
195195 expect ( orderBy ( [ { foo : 2 } , { foo : { } } , { foo : 3 } , { foo : 4 } ] , 'foo' ) ) . toEqualData ( [ { foo : 2 } , { foo : 3 } , { foo : 4 } , { foo : { } } ] ) ;
196196 } ) ;
197+
198+
199+ it ( 'should perform a stable sort' , function ( ) {
200+ expect ( orderBy ( [
201+ { foo : 2 , bar : 1 } , { foo : 1 , bar : 2 } , { foo : 2 , bar : 3 } ,
202+ { foo : 2 , bar : 4 } , { foo : 1 , bar : 5 } , { foo : 2 , bar : 6 } ,
203+ { foo : 2 , bar : 7 } , { foo : 1 , bar : 8 } , { foo : 2 , bar : 9 } ,
204+ { foo : 1 , bar : 10 } , { foo : 2 , bar : 11 } , { foo : 1 , bar : 12 }
205+ ] , 'foo' ) )
206+ . toEqualData ( [
207+ { foo : 1 , bar : 2 } , { foo : 1 , bar : 5 } , { foo : 1 , bar : 8 } ,
208+ { foo : 1 , bar : 10 } , { foo : 1 , bar : 12 } , { foo : 2 , bar : 1 } ,
209+ { foo : 2 , bar : 3 } , { foo : 2 , bar : 4 } , { foo : 2 , bar : 6 } ,
210+ { foo : 2 , bar : 7 } , { foo : 2 , bar : 9 } , { foo : 2 , bar : 11 }
211+ ] ) ;
212+
213+ expect ( orderBy ( [
214+ { foo : 2 , bar : 1 } , { foo : 1 , bar : 2 } , { foo : 2 , bar : 3 } ,
215+ { foo : 2 , bar : 4 } , { foo : 1 , bar : 5 } , { foo : 2 , bar : 6 } ,
216+ { foo : 2 , bar : 7 } , { foo : 1 , bar : 8 } , { foo : 2 , bar : 9 } ,
217+ { foo : 1 , bar : 10 } , { foo : 2 , bar : 11 } , { foo : 1 , bar : 12 }
218+ ] , 'foo' , true ) )
219+ . toEqualData ( [
220+ { foo : 2 , bar : 11 } , { foo : 2 , bar : 9 } , { foo : 2 , bar : 7 } ,
221+ { foo : 2 , bar : 6 } , { foo : 2 , bar : 4 } , { foo : 2 , bar : 3 } ,
222+ { foo : 2 , bar : 1 } , { foo : 1 , bar : 12 } , { foo : 1 , bar : 10 } ,
223+ { foo : 1 , bar : 8 } , { foo : 1 , bar : 5 } , { foo : 1 , bar : 2 }
224+ ] ) ;
225+ } ) ;
197226 } ) ;
198227
199228
0 commit comments