File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -481,7 +481,7 @@ class Request extends BaseRequest {
481481
482482 // process batch outputs
483483 if ( batchHasOutput ) {
484- if ( ! this . stream ) batchLastRow = recordsets . pop ( ) [ 0 ]
484+ if ( ! this . stream ) batchLastRow = recordsets . pop ( ) ?. [ 0 ]
485485
486486 for ( const name in batchLastRow ) {
487487 const value = batchLastRow [ name ]
Original file line number Diff line number Diff line change @@ -644,6 +644,22 @@ module.exports = (sql, driver) => {
644644 } ) . catch ( done )
645645 } ,
646646
647+ 'batch with output parameters and sql error' ( done ) {
648+ const req = new TestRequest ( )
649+ req . output ( 'out' , sql . Int )
650+ req . batch ( 'select * from notexistingtable' ) . then ( ( ) => {
651+ done ( new Error ( 'expected batch to reject with sql error' ) )
652+ } ) . catch ( err => {
653+ try {
654+ assert . ok ( err instanceof sql . RequestError , `expected RequestError, got ${ err && err . constructor . name } : ${ err && err . message } ` )
655+ assert . strictEqual ( err . code , 'EREQUEST' )
656+ done ( )
657+ } catch ( assertionError ) {
658+ done ( assertionError )
659+ }
660+ } )
661+ } ,
662+
647663 'create procedure batch' ( done ) {
648664 let req = new TestRequest ( )
649665 req . batch ( 'create procedure #temporary as select 1 as num' ) . then ( result => {
Original file line number Diff line number Diff line change @@ -74,6 +74,7 @@ describe('msnodesqlv8', function () {
7474 it ( 'query with pipe and back pressure' , ( done ) => TESTS [ 'query with pipe and back pressure' ] ( done ) )
7575 it ( 'batch' , done => TESTS . batch ( done ) )
7676 it ( 'batch (stream)' , done => TESTS . batch ( done , true ) )
77+ it ( 'batch with output parameters and sql error' , done => TESTS [ 'batch with output parameters and sql error' ] ( done ) )
7778 it ( 'create procedure batch' , done => TESTS [ 'create procedure batch' ] ( done ) )
7879 it ( 'prepared statement' , done => TESTS [ 'prepared statement' ] ( done ) )
7980 it ( 'prepared statement that fails to prepare throws' , done => TESTS [ 'prepared statement that fails to prepare throws' ] ( done ) )
Original file line number Diff line number Diff line change @@ -81,6 +81,7 @@ describe('tedious', () => {
8181 it ( 'query with pipe and back pressure' , ( done ) => TESTS [ 'query with pipe and back pressure' ] ( done ) )
8282 it ( 'query with duplicate output column names' , done => TESTS [ 'query with duplicate output column names' ] ( done ) )
8383 it ( 'batch' , done => TESTS . batch ( done ) )
84+ it ( 'batch with output parameters and sql error' , done => TESTS [ 'batch with output parameters and sql error' ] ( done ) )
8485 it ( 'create procedure batch' , done => TESTS [ 'create procedure batch' ] ( done ) )
8586 it ( 'prepared statement' , done => TESTS [ 'prepared statement' ] ( done ) )
8687 it ( 'prepared statement that fails to prepare throws' , done => TESTS [ 'prepared statement that fails to prepare throws' ] ( done ) )
You can’t perform that action at this time.
0 commit comments