@@ -27,6 +27,11 @@ describe('CqlParser', () => {
2727 const got = cqlParser . read ( cqlFilter ) ;
2828 expect ( got ) . toEqual ( [ '==' , 'Name' , 'Peter' ] ) ;
2929 } ) ;
30+ it ( 'can read number Comparison Filters' , ( ) => {
31+ const cqlFilter = 'Age = 12.3' ;
32+ const got = cqlParser . read ( cqlFilter ) ;
33+ expect ( got ) . toEqual ( [ '==' , 'Age' , 12.3 ] ) ;
34+ } ) ;
3035 it ( 'can read Strings with quotation marks Comparison Filters' , ( ) => {
3136 const cqlFilter1 = `Name = "Peter"` ;
3237 const cqlFilter2 = `Name = 'Peter'` ;
@@ -63,6 +68,26 @@ describe('CqlParser', () => {
6368 ]
6469 ) ;
6570 } ) ;
71+ it ( 'can read Combination Filters with parens' , ( ) => {
72+ const cqlFilter1 = '( Age = 12 AND Name = Peter )' ;
73+ const cqlFilter2 = '( Name = "Peter Schmidt" OR Height = 1.75 )' ;
74+ const got1 = cqlParser . read ( cqlFilter1 ) ;
75+ const got2 = cqlParser . read ( cqlFilter2 ) ;
76+ expect ( got1 ) . toEqual (
77+ [
78+ '&&' ,
79+ [ '==' , 'Age' , 12 ] ,
80+ [ '==' , 'Name' , 'Peter' ]
81+ ]
82+ ) ;
83+ expect ( got2 ) . toEqual (
84+ [
85+ '||' ,
86+ [ '==' , 'Name' , 'Peter Schmidt' ] ,
87+ [ '==' , 'Height' , 1.75 ]
88+ ]
89+ ) ;
90+ } ) ;
6691 } ) ;
6792
6893 describe ( '#write' , ( ) => {
@@ -80,7 +105,7 @@ describe('CqlParser', () => {
80105 it ( 'can write String Comparison Filters' , ( ) => {
81106 const geoStylerFilter = [ '==' , 'Name' , 'Peter' ] ;
82107 const got = cqlParser . write ( geoStylerFilter ) ;
83- expect ( got ) . toEqual ( 'Name = Peter' ) ;
108+ expect ( got ) . toEqual ( 'Name = \' Peter\' ' ) ;
84109 } ) ;
85110 it ( 'can write Number Comparison Filters' , ( ) => {
86111 const geoStylerFilter1 = [ '==' , 'Age' , 12 ] ;
@@ -102,12 +127,23 @@ describe('CqlParser', () => {
102127 [ '==' , 'Name' , 'Peter Schmidt' ] ,
103128 [ '==' , 'Height' , 1.75 ]
104129 ] ;
105- const cqlFilter1 = 'Age = 12 AND Name = Peter' ;
130+ const cqlFilter1 = 'Age = 12 AND Name = \' Peter\' ' ;
106131 const cqlFilter2 = 'Name = \'Peter Schmidt\' OR Height = 1.75' ;
107132 const got1 = cqlParser . write ( geoStylerFilter1 ) ;
108133 const got2 = cqlParser . write ( geoStylerFilter2 ) ;
109134 expect ( got1 ) . toEqual ( cqlFilter1 ) ;
110135 expect ( got2 ) . toEqual ( cqlFilter2 ) ;
111136 } ) ;
137+ it ( 'can write multiple Combination Filters' , ( ) => {
138+ const geoStylerFilter1 = [
139+ '&&' ,
140+ [ '==' , 'Age' , 12 ] ,
141+ [ '==' , 'Name' , 'Peter' ] ,
142+ [ '==' , 'Car' , 'Bentley' ]
143+ ] ;
144+ const cqlFilter1 = 'Age = 12 AND Name = \'Peter\' AND Car = \'Bentley\'' ;
145+ const got1 = cqlParser . write ( geoStylerFilter1 ) ;
146+ expect ( got1 ) . toEqual ( cqlFilter1 ) ;
147+ } ) ;
112148 } ) ;
113149} ) ;
0 commit comments