@@ -909,3 +909,46 @@ suite('options.allowBareNamedParameters', () => {
909909 ) ;
910910 } ) ;
911911} ) ;
912+
913+ suite ( 'options.persistent' , ( ) => {
914+ test ( 'statement executes correctly when persistent is true' , ( t ) => {
915+ const db = new DatabaseSync ( nextDb ( ) ) ;
916+ t . after ( ( ) => { db . close ( ) ; } ) ;
917+ db . exec ( 'CREATE TABLE data(key INTEGER PRIMARY KEY, val INTEGER) STRICT;' ) ;
918+ db . exec ( 'INSERT INTO data (key, val) VALUES (1, 42);' ) ;
919+ const stmt = db . prepare ( 'SELECT val FROM data' , { persistent : true } ) ;
920+ t . assert . deepStrictEqual ( stmt . get ( ) , { __proto__ : null , val : 42 } ) ;
921+ } ) ;
922+
923+ test ( 'statement executes correctly when persistent is false' , ( t ) => {
924+ const db = new DatabaseSync ( nextDb ( ) ) ;
925+ t . after ( ( ) => { db . close ( ) ; } ) ;
926+ db . exec ( 'CREATE TABLE data(key INTEGER PRIMARY KEY, val INTEGER) STRICT;' ) ;
927+ db . exec ( 'INSERT INTO data (key, val) VALUES (1, 42);' ) ;
928+ const stmt = db . prepare ( 'SELECT val FROM data' , { persistent : false } ) ;
929+ t . assert . deepStrictEqual ( stmt . get ( ) , { __proto__ : null , val : 42 } ) ;
930+ } ) ;
931+
932+ test ( 'throws when input is not a boolean' , ( t ) => {
933+ const db = new DatabaseSync ( nextDb ( ) ) ;
934+ t . after ( ( ) => { db . close ( ) ; } ) ;
935+ t . assert . throws ( ( ) => {
936+ db . prepare ( 'SELECT 1' , { persistent : 'yes' } ) ;
937+ } , {
938+ code : 'ERR_INVALID_ARG_TYPE' ,
939+ message : / T h e " o p t i o n s \. p e r s i s t e n t " a r g u m e n t m u s t b e a b o o l e a n / ,
940+ } ) ;
941+ } ) ;
942+
943+ test ( 'can be combined with other options' , ( t ) => {
944+ const db = new DatabaseSync ( nextDb ( ) ) ;
945+ t . after ( ( ) => { db . close ( ) ; } ) ;
946+ db . exec ( 'CREATE TABLE data(key INTEGER PRIMARY KEY, val INTEGER) STRICT;' ) ;
947+ db . exec ( 'INSERT INTO data (key, val) VALUES (1, 42);' ) ;
948+ const stmt = db . prepare (
949+ 'SELECT val FROM data' ,
950+ { persistent : true , readBigInts : true }
951+ ) ;
952+ t . assert . deepStrictEqual ( stmt . get ( ) , { __proto__ : null , val : 42n } ) ;
953+ } ) ;
954+ } ) ;
0 commit comments