@@ -337,7 +337,7 @@ suite('StatementSync.prototype.run()', () => {
337337 t . assert . deepStrictEqual ( stmt . run ( ) , { changes : 1 , lastInsertRowid : 1 } ) ;
338338 } ) ;
339339
340- test ( 'SQLite throws when trying to bind too many parameters' , ( t ) => {
340+ test ( 'throws when trying to bind too many parameters' , ( t ) => {
341341 const db = new DatabaseSync ( ':memory:' ) ;
342342 t . after ( ( ) => { db . close ( ) ; } ) ;
343343 const setup = db . exec (
@@ -348,10 +348,25 @@ suite('StatementSync.prototype.run()', () => {
348348 t . assert . throws ( ( ) => {
349349 stmt . run ( 1 , 2 , 3 ) ;
350350 } , {
351- code : 'ERR_SQLITE_ERROR' ,
352- message : 'column index out of range' ,
353- errcode : 25 ,
354- errstr : 'column index out of range' ,
351+ code : 'ERR_INVALID_STATE' ,
352+ message : 'Too many parameter values were provided. ' +
353+ 'The statement accepts 2, but received 3' ,
354+ } ) ;
355+
356+ t . assert . throws ( ( ) => {
357+ db . prepare ( 'SELECT 1' ) . get ( 5 ) ;
358+ } , {
359+ code : 'ERR_INVALID_STATE' ,
360+ message : 'Too many parameter values were provided. ' +
361+ 'The statement accepts 0, but received 1' ,
362+ } ) ;
363+
364+ t . assert . throws ( ( ) => {
365+ db . prepare ( 'SELECT $a AS a, ? AS b' ) . get ( { $a : 1 } , 2 , 3 ) ;
366+ } , {
367+ code : 'ERR_INVALID_STATE' ,
368+ message : 'Too many parameter values were provided. ' +
369+ 'The statement accepts 1, but received 2' ,
355370 } ) ;
356371 } ) ;
357372
0 commit comments