@@ -65,6 +65,28 @@ describe('Filter: filter', function() {
65
65
} ) ;
66
66
67
67
68
+ it ( 'should match primitive array values against top-level `$` property in object expression' ,
69
+ function ( ) {
70
+ var items , expr ;
71
+
72
+ items = [ 'something' , 'something else' , 'another thing' ] ;
73
+ expr = { $ : 'some' } ;
74
+ expect ( filter ( items , expr ) . length ) . toBe ( 2 ) ;
75
+ expect ( filter ( items , expr ) ) . toEqual ( [ items [ 0 ] , items [ 1 ] ] ) ;
76
+
77
+ items = [ { val : 'something' } , { val : 'something else' } , { val : 'another thing' } ] ;
78
+ expr = { $ : 'some' } ;
79
+ expect ( filter ( items , expr ) . length ) . toBe ( 2 ) ;
80
+ expect ( filter ( items , expr ) ) . toEqual ( [ items [ 0 ] , items [ 1 ] ] ) ;
81
+
82
+ items = [ 123 , 456 , 789 ] ;
83
+ expr = { $ : 1 } ;
84
+ expect ( filter ( items , expr ) . length ) . toBe ( 1 ) ;
85
+ expect ( filter ( items , expr ) ) . toEqual ( [ items [ 0 ] ] ) ;
86
+ }
87
+ ) ;
88
+
89
+
68
90
it ( 'should take object as predicate' , function ( ) {
69
91
var items = [ { first : 'misko' , last : 'hevery' } ,
70
92
{ first : 'adam' , last : 'abrons' } ] ;
@@ -313,8 +335,6 @@ describe('Filter: filter', function() {
313
335
expect ( filter ( items , { } ) . length ) . toBe ( 1 ) ;
314
336
expect ( filter ( items , { } ) [ 0 ] ) . toBe ( items [ 1 ] ) ;
315
337
316
- expect ( filter ( items , { $ : 'll' } ) . length ) . toBe ( 0 ) ;
317
-
318
338
// Not affected by `Object.prototype`
319
339
expect ( filter ( items , 'll' ) . length ) . toBe ( 1 ) ;
320
340
expect ( filter ( items , 'll' ) [ 0 ] ) . toBe ( items [ 0 ] ) ;
0 commit comments