@@ -276,6 +276,35 @@ describe("RedisGraphAPI Test", () => {
276
276
assert . deepStrictEqual ( [ nodeA , nodeB ] , record . get ( 0 ) ) ;
277
277
} ) ;
278
278
279
+ it ( "test map" , async ( ) => {
280
+ // return empty map
281
+ let resultSet = await api . query ( "RETURN {}" ) ;
282
+ assert . equal ( resultSet . size ( ) , 1 ) ;
283
+ assert . ok ( resultSet . hasNext ( ) ) ;
284
+
285
+ let record = resultSet . next ( ) ;
286
+ assert . deepStrictEqual ( { } , record . get ( 0 ) ) ;
287
+ assert . ok ( ! resultSet . hasNext ( ) ) ;
288
+
289
+ // return map with multiple types
290
+ await api . query ( "CREATE (:person{v:1})-[:R{v:2}]->(:person{v:3})" )
291
+ resultSet = await api . query ( "MATCH (a)-[e]->(b) RETURN {a:'a', b:1, c:null, d:true, e:[1,2], f:{x:1}, src:a, edge:e, dest:b}" ) ;
292
+ assert . equal ( resultSet . size ( ) , 1 ) ;
293
+ assert . ok ( resultSet . hasNext ( ) ) ;
294
+
295
+ let src = new Node ( "person" , { v : 1 } ) ;
296
+ src . setId ( 0 ) ;
297
+ let dest = new Node ( "person" , { v : 3 } ) ;
298
+ dest . setId ( 1 ) ;
299
+ let edge = new Edge ( 0 , "R" , 1 , { v : 2 } ) ;
300
+ edge . setId ( 0 ) ;
301
+
302
+ let expected = { a :'a' , b :1 , c :null , d :true , e :[ 1 , 2 ] , f :{ x :1 } , src :src , edge :edge , dest :dest } ;
303
+ record = resultSet . next ( ) ;
304
+ assert . deepStrictEqual ( expected , record . get ( 0 ) ) ;
305
+ assert . ok ( ! resultSet . hasNext ( ) ) ;
306
+ } ) ;
307
+
279
308
it ( "test multi thread" , async ( ) => {
280
309
await api . query ( "CREATE (:person {name:'roi', age:34})" ) ;
281
310
var promises = [ ] ;
0 commit comments