@@ -539,6 +539,61 @@ describe('#integration examples', () => {
539
539
expect ( await consoleLoggedMsg ) . toEqual ( 'Names: Alice, Bob' )
540
540
} , 60000 )
541
541
542
+ it ( 'async multiple transactions' , async ( ) => {
543
+ const console = consoleOverride
544
+ const consoleLoggedMsg = consoleOverridePromise
545
+ const driver = driverGlobal
546
+ const companyName = 'Acme'
547
+ const personNames = { nameA : 'Alice' , nameB : 'Bob' }
548
+ const tmpSession = driver . session ( )
549
+
550
+ try {
551
+ await tmpSession . run (
552
+ 'CREATE (a:Person {name: $nameA}), (b:Person {name: $nameB})' ,
553
+ personNames
554
+ )
555
+
556
+ // tag::async-multiple-tx[]
557
+ const session = driver . session ( )
558
+ try {
559
+ const names = await session . readTransaction ( async tx => {
560
+ const result = await tx . run ( 'MATCH (a:Person) RETURN a.name AS name' )
561
+ return result . records . map ( record => record . get ( 'name' ) )
562
+ } )
563
+
564
+ const relationshipsCreated = await session . writeTransaction ( tx =>
565
+ Promise . all (
566
+ names . map ( name =>
567
+ tx
568
+ . run (
569
+ 'MATCH (emp:Person {name: $person_name}) ' +
570
+ 'MERGE (com:Company {name: $company_name}) ' +
571
+ 'MERGE (emp)-[:WORKS_FOR]->(com)' ,
572
+ { person_name : name , company_name : companyName }
573
+ )
574
+ . then (
575
+ result =>
576
+ result . summary . counters . updates ( ) . relationshipsCreated
577
+ )
578
+ . then ( relationshipsCreated =>
579
+ neo4j . int ( relationshipsCreated ) . toInt ( )
580
+ )
581
+ )
582
+ ) . then ( values => values . reduce ( ( a , b ) => a + b ) )
583
+ )
584
+
585
+ console . log ( `Created ${ relationshipsCreated } employees relationship` )
586
+ } finally {
587
+ await session . close ( )
588
+ }
589
+ // end::async-multiple-tx[]
590
+ } finally {
591
+ await tmpSession . close ( )
592
+ }
593
+
594
+ expect ( await consoleLoggedMsg ) . toEqual ( 'Created 2 employees relationship' )
595
+ } )
596
+
542
597
it ( 'rx result consume example' , async ( ) => {
543
598
if ( protocolVersion < 4.0 ) {
544
599
return
0 commit comments