@@ -40,6 +40,60 @@ suite('DatabaseSync verbose option', () => {
4040 db . close ( ) ;
4141 } ) ;
4242
43+ it ( 'callback receives SQL string for SELECT statements' , ( ) => {
44+ let calls = [ ] ;
45+ const db = new DatabaseSync ( ':memory:' , {
46+ verbose : ( sql ) => calls . push ( sql ) ,
47+ } ) ;
48+
49+ db . exec ( 'CREATE TABLE t (x INTEGER)' ) ;
50+ db . exec ( 'INSERT INTO t VALUES (1)' ) ;
51+ calls = [ ] ; // reset after setup
52+
53+ const stmt = db . prepare ( 'SELECT x FROM t WHERE x = ?' ) ;
54+ stmt . get ( 1 ) ;
55+
56+ assert . strictEqual ( calls . length , 1 ) ;
57+ assert . strictEqual ( calls [ 0 ] , 'SELECT x FROM t WHERE x = 1.0' ) ;
58+ db . close ( ) ;
59+ } ) ;
60+
61+ it ( 'callback receives SQL string for UPDATE statements' , ( ) => {
62+ let calls = [ ] ;
63+ const db = new DatabaseSync ( ':memory:' , {
64+ verbose : ( sql ) => calls . push ( sql ) ,
65+ } ) ;
66+
67+ db . exec ( 'CREATE TABLE t (x INTEGER)' ) ;
68+ db . exec ( 'INSERT INTO t VALUES (1)' ) ;
69+ calls = [ ] ; // reset after setup
70+
71+ const stmt = db . prepare ( 'UPDATE t SET x = ? WHERE x = ?' ) ;
72+ stmt . run ( 2 , 1 ) ;
73+
74+ assert . strictEqual ( calls . length , 1 ) ;
75+ assert . strictEqual ( calls [ 0 ] , 'UPDATE t SET x = 2.0 WHERE x = 1.0' ) ;
76+ db . close ( ) ;
77+ } ) ;
78+
79+ it ( 'callback receives SQL string for DELETE statements' , ( ) => {
80+ let calls = [ ] ;
81+ const db = new DatabaseSync ( ':memory:' , {
82+ verbose : ( sql ) => calls . push ( sql ) ,
83+ } ) ;
84+
85+ db . exec ( 'CREATE TABLE t (x INTEGER)' ) ;
86+ db . exec ( 'INSERT INTO t VALUES (1)' ) ;
87+ calls = [ ] ; // reset after setup
88+
89+ const stmt = db . prepare ( 'DELETE FROM t WHERE x = ?' ) ;
90+ stmt . run ( 1 ) ;
91+
92+ assert . strictEqual ( calls . length , 1 ) ;
93+ assert . strictEqual ( calls [ 0 ] , 'DELETE FROM t WHERE x = 1.0' ) ;
94+ db . close ( ) ;
95+ } ) ;
96+
4397 it ( 'falls back to source SQL when expansion fails' , ( ) => {
4498 let calls = [ ] ;
4599
0 commit comments