@@ -276,6 +276,35 @@ describe("RedisGraphAPI Test", () => {
276276 assert . deepStrictEqual ( [ nodeA , nodeB ] , record . get ( 0 ) ) ;
277277 } ) ;
278278
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+
279308 it ( "test multi thread" , async ( ) => {
280309 await api . query ( "CREATE (:person {name:'roi', age:34})" ) ;
281310 var promises = [ ] ;
0 commit comments