@@ -77,6 +77,34 @@ suite('StatementSync.prototype.all()', () => {
7777 } ) ;
7878} ) ;
7979
80+ suite ( 'StatementSync.prototype.iterate()' , ( ) => {
81+ test ( 'executes a query and returns an empty iterator on no results' , ( t ) => {
82+ const db = new DatabaseSync ( nextDb ( ) ) ;
83+ const stmt = db . prepare ( 'CREATE TABLE storage(key TEXT, val TEXT)' ) ;
84+ t . assert . deepStrictEqual ( stmt . iterate ( ) . toArray ( ) , [ ] ) ;
85+ } ) ;
86+
87+ test ( 'executes a query and returns all results' , ( t ) => {
88+ const db = new DatabaseSync ( nextDb ( ) ) ;
89+ let stmt = db . prepare ( 'CREATE TABLE storage(key TEXT, val TEXT)' ) ;
90+ t . assert . deepStrictEqual ( stmt . run ( ) , { changes : 0 , lastInsertRowid : 0 } ) ;
91+ stmt = db . prepare ( 'INSERT INTO storage (key, val) VALUES (?, ?)' ) ;
92+ t . assert . deepStrictEqual (
93+ stmt . run ( 'key1' , 'val1' ) ,
94+ { changes : 1 , lastInsertRowid : 1 } ,
95+ ) ;
96+ t . assert . deepStrictEqual (
97+ stmt . run ( 'key2' , 'val2' ) ,
98+ { changes : 1 , lastInsertRowid : 2 } ,
99+ ) ;
100+ stmt = db . prepare ( 'SELECT * FROM storage ORDER BY key' ) ;
101+ t . assert . deepStrictEqual ( stmt . iterate ( ) . toArray ( ) , [
102+ { key : 'key1' , val : 'val1' } ,
103+ { key : 'key2' , val : 'val2' } ,
104+ ] ) ;
105+ } ) ;
106+ } ) ;
107+
80108suite ( 'StatementSync.prototype.run()' , ( ) => {
81109 test ( 'executes a query and returns change metadata' , ( t ) => {
82110 const db = new DatabaseSync ( nextDb ( ) ) ;
0 commit comments