@@ -65,40 +65,87 @@ test("eval code to value", async () => {
6565 value : 0 ,
6666 } ,
6767 ] ) ;
68- expect ( a ) . toBe ( "0" ) ;
68+ expect ( a ) . toBe ( 0 ) ;
6969
7070 let b = evalCodeToValue ( "{{a}}" , [
7171 {
7272 key : "a" ,
7373 value : { name : "Tom" } ,
7474 } ,
7575 ] ) ;
76- expect ( b ) . toBe ( JSON . stringify ( { name : "Tom" } ) ) ;
76+ expect ( b ) . toEqual ( { name : "Tom" } ) ;
77+
78+ let c = evalCodeToValue ( "Hello: {{a}}" , [
79+ {
80+ key : "a" ,
81+ value : { name : "Tom" } ,
82+ } ,
83+ ] ) ;
84+ expect ( c ) . toBe ( "Hello: " + String ( { name : "Tom" } ) ) ;
7785} ) ;
7886
7987test ( "eval to value" , async ( ) => {
8088 let value ;
8189
90+ // boolean input
8291 value = await evalToValue ( { key : "a" , type : "booleanInput" } , "1" , [ ] , { } ) ;
8392 expect ( value ) . toBe ( true ) ;
84-
8593 value = await evalToValue (
8694 { key : "a" , type : "booleanInput" } ,
8795 "{{a}}" ,
8896 [ { key : "a" , value : 1 } ] ,
8997 { }
9098 ) ;
9199 expect ( value ) . toBe ( true ) ;
100+ value = await evalToValue (
101+ { key : "a" , type : "booleanInput" } ,
102+ "{{a}}" ,
103+ [ { key : "a" , value : 0 } ] ,
104+ { }
105+ ) ;
106+ expect ( value ) . toBe ( false ) ;
107+ value = await evalToValue ( { key : "a" , type : "booleanInput" } , "{{a}}" , [ ] , { } ) ;
108+ expect ( value ) . toBe ( false ) ;
109+
110+ // test input
111+ value = await evalToValue (
112+ { key : "a" , type : "textInput" } ,
113+ "{{hello}}: {{name}}: {{data}}" ,
114+ [
115+ { key : "hello" , value : "world" } ,
116+ { key : "name" , value : "Tom" } ,
117+ { key : "data" , value : { n : 1 } } ,
118+ ] ,
119+ { }
120+ ) ;
121+ expect ( value ) . toBe ( `world: Tom: ${ String ( { n : 1 } ) } ` ) ;
122+ value = await evalToValue ( { key : "a" , type : "textInput" } , "{{hello}}: {{name}}" , [ ] , { } ) ;
123+ expect ( value ) . toBe ( ": " ) ;
124+ value = await evalToValue (
125+ { key : "a" , type : "textInput" } ,
126+ "{{hello}}" ,
127+ [ { key : "hello" , value : { n : 1 } } ] ,
128+ { }
129+ ) ;
130+ expect ( value ) . toBe ( JSON . stringify ( { n : 1 } ) ) ;
92131
132+ // checkbox
93133 value = await evalToValue ( { key : "a" , type : "checkbox" } , "any-value" , [ ] , { } ) ;
94134 expect ( value ) . toBe ( true ) ;
135+ value = await evalToValue ( { key : "a" , type : "checkbox" } , "" , [ ] , { } ) ;
136+ expect ( value ) . toBe ( false ) ;
137+ value = await evalToValue ( { key : "a" , type : "checkbox" } , "{{a}}" , [ ] , { } ) ;
138+ expect ( value ) . toBe ( false ) ;
139+ value = await evalToValue ( { key : "a" , type : "checkbox" } , "{{a}}" , [ { key : "a" , value : 1 } ] , { } ) ;
140+ expect ( value ) . toBe ( true ) ;
141+ value = await evalToValue ( { key : "a" , type : "checkbox" } , "{{a}}" , [ { key : "a" , value : 0 } ] , { } ) ;
142+ expect ( value ) . toBe ( false ) ;
95143
144+ // file
96145 value = await evalToValue ( { key : "a" , type : "file" } , "some-base64" , [ ] , { } ) ;
97146 expect ( value ) . toBe ( "some-base64" ) ;
98-
99147 value = await evalToValue ( { key : "a" , type : "file" } , "{name: 1.png, type: image/png}" , [ ] , { } ) ;
100148 expect ( value ) . toEqual ( { name : "1.png" , type : "image/png" } ) ;
101-
102149 value = await evalToValue (
103150 { key : "a" , type : "file" } ,
104151 "{name: 1.png, type: {{type}}, data: {{data}}}" ,
@@ -110,14 +157,40 @@ test("eval to value", async () => {
110157 ) ;
111158 expect ( value ) . toEqual ( { name : "1.png" , type : "image/png" , data : "/** some \nvalue\n" } ) ;
112159
113- value = await evalToValue ( { key : "a" , type : "jsonInput" } , "{hello}" , [ ] , { } ) ;
160+ // json
161+ value = await evalToValue ( { key : "a" , type : "jsonInput" } , "some-string" , [ ] , { } ) ;
162+ expect ( value ) . toEqual ( "some-string" ) ;
163+ value = await evalToValue ( { key : "a" , type : "jsonInput" } , "{}" , [ ] , { } ) ;
164+ expect ( value ) . toEqual ( { } ) ;
165+ value = await evalToValue (
166+ { key : "a" , type : "jsonInput" } ,
167+ "{a: {{b}}}" ,
168+ [ { key : "b" , value : "1" } ] ,
169+ { }
170+ ) ;
171+ expect ( value ) . toEqual ( { a : "1" } ) ;
172+ value = await evalToValue (
173+ { key : "a" , type : "jsonInput" } ,
174+ "{a: {{b}}}" ,
175+ [ { key : "b" , value : 1 } ] ,
176+ { }
177+ ) ;
178+ expect ( value ) . toEqual ( { a : 1 } ) ;
179+ value = await evalToValue ( { key : "a" , type : "jsonInput" } , "{a: {{b}}}" , [ ] , { } ) ;
114180 expect ( value ) . toEqual ( { } ) ;
115181
182+ // number
116183 value = await evalToValue ( { key : "a" , type : "numberInput" } , "invalid number" , [ ] , { } ) ;
117184 expect ( value ) . toBe ( 0 ) ;
118-
119185 value = await evalToValue ( { key : "a" , type : "numberInput" } , "1" , [ ] , { } ) ;
120186 expect ( value ) . toBe ( 1 ) ;
187+ value = await evalToValue (
188+ { key : "a" , type : "numberInput" } ,
189+ "{{a}}1" ,
190+ [ { key : "a" , value : 1 } ] ,
191+ { }
192+ ) ;
193+ expect ( value ) . toBe ( 11 ) ;
121194} ) ;
122195
123196test ( "list plugins" , ( ) => {
0 commit comments