@@ -508,5 +508,33 @@ describe("RedisGraphAPI Test", () => {
508508 record = resultSet . next ( ) ;
509509 assert . equal ( record . size ( ) , 1 ) ;
510510 assert . equal ( record . get ( 0 ) , null ) ;
511- } ) ;
511+ } ) ;
512+
513+ it ( "testCachedExecution" , async ( ) => {
514+ await api . query ( "CREATE (:N {val:1}), (:N {val:2})" ) ;
515+
516+ // First time should not be loaded from execution cache
517+ let resultSet = await api . query (
518+ "MATCH (n:N {val:$val}) RETURN n.val " , { 'val' :1 }
519+ ) ;
520+ assert . equal ( resultSet . size ( ) , 1 )
521+ assert . equal ( false , resultSet . getStatistics ( ) . cachedExecution ( ) )
522+
523+ let record = resultSet . next ( ) ;
524+ assert . equal ( record . size ( ) , 1 ) ;
525+ assert . equal ( record . get ( 0 ) , 1 ) ;
526+
527+ // Run in loop many times to make sure the query will be loaded
528+ // from cache at least once
529+ for ( var i = 0 ; i < 64 ; i ++ ) {
530+ resultSet = await api . query (
531+ "MATCH (n:N {val:$val}) RETURN n.val " , { 'val' :1 }
532+ ) ;
533+ }
534+ assert . equal ( resultSet . size ( ) , 1 )
535+ record = resultSet . next ( ) ;
536+ assert . equal ( record . size ( ) , 1 ) ;
537+ assert . equal ( record . get ( 0 ) , 1 ) ;
538+ assert . equal ( true , resultSet . getStatistics ( ) . cachedExecution ( ) )
539+ } ) ;
512540} ) ;
0 commit comments