@@ -65,6 +65,33 @@ 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
+ items = [ true , false , 'true' ] ;
88
+ expr = { $ : true , ignored : '!' } ;
89
+ expect ( filter ( items , expr ) . length ) . toBe ( 2 ) ;
90
+ expect ( filter ( items , expr ) ) . toEqual ( [ items [ 0 ] , items [ 2 ] ] ) ;
91
+ }
92
+ ) ;
93
+
94
+
68
95
it ( 'should take object as predicate' , function ( ) {
69
96
var items = [ { first : 'misko' , last : 'hevery' } ,
70
97
{ first : 'adam' , last : 'abrons' } ] ;
0 commit comments