@@ -11,6 +11,24 @@ describe('Expression', () => {
11
11
expect ( expression . value ) . toEqual ( { All : [ true ] } )
12
12
} )
13
13
14
+ test ( 'builds an expression from a boolean constant' , ( ) => {
15
+ const expression = Expression . build ( true )
16
+ expect ( expression ) . toBeInstanceOf ( Constant )
17
+ expect ( expression . value ) . toEqual ( true )
18
+ } )
19
+
20
+ test ( 'builds an expression from a string constant' , ( ) => {
21
+ const expression = Expression . build ( "hello" )
22
+ expect ( expression ) . toBeInstanceOf ( Constant )
23
+ expect ( expression . value ) . toEqual ( "hello" )
24
+ } )
25
+
26
+ test ( 'builds an expression from a null constant' , ( ) => {
27
+ const expression = Expression . build ( null )
28
+ expect ( expression ) . toBeInstanceOf ( Constant )
29
+ expect ( expression . value ) . toEqual ( null )
30
+ } )
31
+
14
32
test ( 'throws error on invalid expression' , ( ) => {
15
33
expect ( ( ) => Expression . build ( [ ] ) ) . toThrowError ( TypeError )
16
34
expect ( ( ) => Expression . build ( new Date ( ) ) ) . toThrowError ( TypeError )
@@ -25,8 +43,13 @@ describe('Expression', () => {
25
43
expect ( expression . args [ 1 ] . schema ) . toEqual ( schema . items [ 1 ] )
26
44
} )
27
45
46
+ test ( 'sets schema for constant' , ( ) => {
47
+ const expression = Expression . build ( false )
48
+ expect ( expression . schema . $id ) . toEqual ( Schema . resolve ( '#' ) . $id )
49
+ } )
50
+
28
51
test ( 'each subexpression uses its own schema' , ( ) => {
29
- const expression = Expression . build ( { GreaterThan : [ { Now : [ ] } , { Property : [ 'released_at' ] } ] } )
52
+ const expression = Expression . build ( { GreaterThan : [ { Now : [ ] } , { Property : [ 'released_at' ] } ] } )
30
53
expect ( expression . schema ) . toEqual ( Schema . resolve ( 'GreaterThan.schema.json' ) )
31
54
expect ( expression . args [ 0 ] . schema ) . toEqual ( Schema . resolve ( 'Now.schema.json' ) )
32
55
expect ( expression . args [ 1 ] . schema ) . toEqual ( Schema . resolve ( 'Property.schema.json' ) )
0 commit comments