@@ -26,53 +26,53 @@ describe("MicroSQL - Edge Cases", () => {
2626 it ( "handles commas in INSERT values" , ( ) => {
2727 db . query ( `INSERT INTO users (id, name, bio) VALUES (1, "Smith, John", "Likes: coding, reading")` ) ;
2828
29- const result = db . query ( `SELECT * FROM users WHERE id = 1` ) ;
30- expect ( result [ 0 ] . name ) . toBe ( "Smith, John" ) ;
31- expect ( result [ 0 ] . bio ) . toBe ( "Likes: coding, reading" ) ;
29+ const result = db . query ( `SELECT * FROM users WHERE id = 1` ) as { rows : any [ ] } ;
30+ expect ( result . rows [ 0 ] . name ) . toBe ( "Smith, John" ) ;
31+ expect ( result . rows [ 0 ] . bio ) . toBe ( "Likes: coding, reading" ) ;
3232 } ) ;
3333
3434 it ( "handles commas in UPDATE values" , ( ) => {
3535 db . query ( `INSERT INTO users (id, name) VALUES (1, "John")` ) ;
3636 db . query ( `UPDATE users SET name = "Smith, John", bio = "Likes: coding, reading" WHERE id = 1` ) ;
3737
38- const result = db . query ( `SELECT * FROM users WHERE id = 1` ) ;
39- expect ( result [ 0 ] . name ) . toBe ( "Smith, John" ) ;
40- expect ( result [ 0 ] . bio ) . toBe ( "Likes: coding, reading" ) ;
38+ const result = db . query ( `SELECT * FROM users WHERE id = 1` ) as { rows : any [ ] } ;
39+ expect ( result . rows [ 0 ] . name ) . toBe ( "Smith, John" ) ;
40+ expect ( result . rows [ 0 ] . bio ) . toBe ( "Likes: coding, reading" ) ;
4141 } ) ;
4242
4343 it ( "handles commas in IN operator" , ( ) => {
4444 db . query ( `INSERT INTO users (id, name) VALUES (1, "Smith, John")` ) ;
4545 db . query ( `INSERT INTO users (id, name) VALUES (2, "Doe, Jane")` ) ;
4646 db . query ( `INSERT INTO users (id, name) VALUES (3, "Bob")` ) ;
4747
48- const result = db . query ( `SELECT name FROM users WHERE name IN ("Smith, John", "Doe, Jane")` ) ;
49- expect ( result . map ( r => r . name ) . sort ( ) ) . toEqual ( [ "Doe, Jane" , "Smith, John" ] ) ;
48+ const result = db . query ( `SELECT name FROM users WHERE name IN ("Smith, John", "Doe, Jane")` ) as { rows : any [ ] } ;
49+ expect ( result . rows . map ( r => r . name ) . sort ( ) ) . toEqual ( [ "Doe, Jane" , "Smith, John" ] ) ;
5050 } ) ;
5151
5252 it ( "handles special regex characters in LIKE" , ( ) => {
5353 db . query ( `INSERT INTO users (id, email) VALUES (1, "user@test.com")` ) ;
5454 db . query ( `INSERT INTO users (id, email) VALUES (2, "admin@example.org")` ) ;
5555
56- const result = db . query ( `SELECT email FROM users WHERE email LIKE "%@test.%"` ) ;
57- expect ( result ) . toEqual ( [ { email : "user@test.com" } ] ) ;
56+ const result = db . query ( `SELECT email FROM users WHERE email LIKE "%@test.%"` ) as { rows : any [ ] } ;
57+ expect ( result . rows ) . toEqual ( [ { email : "user@test.com" } ] ) ;
5858 } ) ;
5959
6060 it ( "handles numeric ORDER BY correctly" , ( ) => {
6161 db . query ( `INSERT INTO products (id, price) VALUES (1, "100")` ) ;
6262 db . query ( `INSERT INTO products (id, price) VALUES (2, "20")` ) ;
6363 db . query ( `INSERT INTO products (id, price) VALUES (3, "5")` ) ;
6464
65- const result = db . query ( `SELECT price FROM products ORDER BY price DESC` ) ;
66- expect ( result . map ( r => r . price ) ) . toEqual ( [ "100" , "20" , "5" ] ) ;
65+ const result = db . query ( `SELECT price FROM products ORDER BY price DESC` ) as { rows : any [ ] } ;
66+ expect ( result . rows . map ( r => r . price ) ) . toEqual ( [ "100" , "20" , "5" ] ) ;
6767 } ) ;
6868
6969 it ( "handles string ORDER BY correctly" , ( ) => {
7070 db . query ( `INSERT INTO users (id, name) VALUES (1, "Zara")` ) ;
7171 db . query ( `INSERT INTO users (id, name) VALUES (2, "Alice")` ) ;
7272 db . query ( `INSERT INTO users (id, name) VALUES (3, "Bob")` ) ;
7373
74- const result = db . query ( `SELECT name FROM users ORDER BY name ASC` ) ;
75- expect ( result . map ( r => r . name ) ) . toEqual ( [ "Alice" , "Bob" , "Zara" ] ) ;
74+ const result = db . query ( `SELECT name FROM users ORDER BY name ASC` ) as { rows : any [ ] } ;
75+ expect ( result . rows . map ( r => r . name ) ) . toEqual ( [ "Alice" , "Bob" , "Zara" ] ) ;
7676 } ) ;
7777
7878 it ( "handles complex WHERE with mixed AND/OR" , ( ) => {
@@ -83,165 +83,195 @@ describe("MicroSQL - Edge Cases", () => {
8383
8484 const result = db . query (
8585 `SELECT name FROM users WHERE (city = "Berlin" AND age > 30) OR city = "Paris"`
86- ) ;
87- expect ( result . map ( r => r . name ) . sort ( ) ) . toEqual ( [ "Bob" , "Carol" ] ) ;
86+ ) as { rows : any [ ] } ;
87+ expect ( result . rows . map ( r => r . name ) . sort ( ) ) . toEqual ( [ "Bob" , "Carol" ] ) ;
8888 } ) ;
8989
9090 it ( "handles UPDATE with multiple SET clauses" , ( ) => {
9191 db . query ( `INSERT INTO users (id, name, age) VALUES (1, "Alice", 25)` ) ;
9292 db . query ( `UPDATE users SET name = "Alice Smith", age = 26 WHERE id = 1` ) ;
9393
94- const result = db . query ( `SELECT * FROM users WHERE id = 1` ) ;
95- expect ( result [ 0 ] . name ) . toBe ( "Alice Smith" ) ;
96- expect ( result [ 0 ] . age ) . toBe ( "26" ) ;
94+ const result = db . query ( `SELECT * FROM users WHERE id = 1` ) as { rows : any [ ] } ;
95+ expect ( result . rows [ 0 ] . name ) . toBe ( "Alice Smith" ) ;
96+ expect ( result . rows [ 0 ] . age ) . toBe ( "26" ) ;
9797 } ) ;
9898
9999 it ( "handles DELETE without WHERE clause" , ( ) => {
100100 db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
101101 db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
102- db . query ( `DELETE FROM users` ) ;
102+ const deleteResult = db . query ( `DELETE FROM users` ) as { rowCount : number } ;
103+ expect ( deleteResult . rowCount ) . toBe ( 2 ) ;
103104
104- const result = db . query ( `SELECT * FROM users` ) ;
105- expect ( result ) . toHaveLength ( 0 ) ;
105+ const result = db . query ( `SELECT * FROM users` ) as { rows : any [ ] } ;
106+ expect ( result . rows ) . toHaveLength ( 0 ) ;
106107 } ) ;
107108
108109 it ( "handles empty table SELECT" , ( ) => {
109- const result = db . query ( `SELECT * FROM nonexistent` ) ;
110- expect ( result ) . toEqual ( [ ] ) ;
110+ const result = db . query ( `SELECT * FROM nonexistent` ) as { rows : any [ ] } ;
111+ expect ( result . rows ) . toEqual ( [ ] ) ;
111112 } ) ;
112113
113114 it ( "handles LIMIT without ORDER BY" , ( ) => {
114115 db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
115116 db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
116117 db . query ( `INSERT INTO users (id, name) VALUES (3, "Carol")` ) ;
117118
118- const result = db . query ( `SELECT name FROM users LIMIT 2` ) ;
119- expect ( result ) . toHaveLength ( 2 ) ;
119+ const result = db . query ( `SELECT name FROM users LIMIT 2` ) as { rows : any [ ] } ;
120+ expect ( result . rows ) . toHaveLength ( 2 ) ;
120121 } ) ;
121122
122123 it ( "handles WHERE with comparison operators" , ( ) => {
123124 db . query ( `INSERT INTO products (id, price) VALUES (1, "10")` ) ;
124125 db . query ( `INSERT INTO products (id, price) VALUES (2, "20")` ) ;
125126 db . query ( `INSERT INTO products (id, price) VALUES (3, "30")` ) ;
126127
127- const result1 = db . query ( `SELECT id FROM products WHERE price >= 20` ) ;
128- expect ( result1 . map ( r => r . id ) . sort ( ) ) . toEqual ( [ "2" , "3" ] ) ;
128+ const result1 = db . query ( `SELECT id FROM products WHERE price >= 20` ) as { rows : any [ ] } ;
129+ expect ( result1 . rows . map ( r => r . id ) . sort ( ) ) . toEqual ( [ "2" , "3" ] ) ;
129130
130- const result2 = db . query ( `SELECT id FROM products WHERE price <= 20` ) ;
131- expect ( result2 . map ( r => r . id ) . sort ( ) ) . toEqual ( [ "1" , "2" ] ) ;
131+ const result2 = db . query ( `SELECT id FROM products WHERE price <= 20` ) as { rows : any [ ] } ;
132+ expect ( result2 . rows . map ( r => r . id ) . sort ( ) ) . toEqual ( [ "1" , "2" ] ) ;
132133 } ) ;
133134
134135 it ( "handles LIKE with underscore wildcard" , ( ) => {
135136 db . query ( `INSERT INTO users (id, code) VALUES (1, "A1")` ) ;
136137 db . query ( `INSERT INTO users (id, code) VALUES (2, "A2")` ) ;
137138 db . query ( `INSERT INTO users (id, code) VALUES (3, "B1")` ) ;
138139
139- const result = db . query ( `SELECT code FROM users WHERE code LIKE "A_"` ) ;
140- expect ( result . map ( r => r . code ) . sort ( ) ) . toEqual ( [ "A1" , "A2" ] ) ;
140+ const result = db . query ( `SELECT code FROM users WHERE code LIKE "A_"` ) as { rows : any [ ] } ;
141+ expect ( result . rows . map ( r => r . code ) . sort ( ) ) . toEqual ( [ "A1" , "A2" ] ) ;
141142 } ) ;
142143
143144 it ( "handles UPDATE that matches no rows" , ( ) => {
144145 db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
145- const result = db . query ( `UPDATE users SET name = "Bob" WHERE id = 999` ) ;
146+ const result = db . query ( `UPDATE users SET name = "Bob" WHERE id = 999` ) as { rowCount : number } ;
146147
147- expect ( result . updated ) . toBe ( 0 ) ;
148+ expect ( result . rowCount ) . toBe ( 0 ) ;
148149
149- const check = db . query ( `SELECT name FROM users WHERE id = 1` ) ;
150- expect ( check [ 0 ] . name ) . toBe ( "Alice" ) ;
150+ const check = db . query ( `SELECT name FROM users WHERE id = 1` ) as { rows : any [ ] } ;
151+ expect ( check . rows [ 0 ] . name ) . toBe ( "Alice" ) ;
151152 } ) ;
152153
153154 it ( "handles SELECT with specific columns in different order" , ( ) => {
154155 db . query ( `INSERT INTO users (id, name, age, city) VALUES (1, "Alice", 25, "Berlin")` ) ;
155156
156- const result = db . query ( `SELECT city, name FROM users WHERE id = 1` ) ;
157- expect ( result [ 0 ] ) . toEqual ( { city : "Berlin" , name : "Alice" } ) ;
158- expect ( Object . keys ( result [ 0 ] ) ) . toEqual ( [ "city" , "name" ] ) ;
157+ const result = db . query ( `SELECT city, name FROM users WHERE id = 1` ) as { rows : any [ ] } ;
158+ expect ( result . rows [ 0 ] ) . toEqual ( { city : "Berlin" , name : "Alice" } ) ;
159+ expect ( Object . keys ( result . rows [ 0 ] ) ) . toEqual ( [ "city" , "name" ] ) ;
159160 } ) ;
160161
161162 it ( "handles case-insensitive LIKE matching" , ( ) => {
162163 db . query ( `INSERT INTO users (id, name) VALUES (1, "alice")` ) ;
163164 db . query ( `INSERT INTO users (id, name) VALUES (2, "ALICE")` ) ;
164165 db . query ( `INSERT INTO users (id, name) VALUES (3, "Alice")` ) ;
165166
166- const result = db . query ( `SELECT name FROM users WHERE name LIKE "alice"` ) ;
167- expect ( result ) . toHaveLength ( 3 ) ;
167+ const result = db . query ( `SELECT name FROM users WHERE name LIKE "alice"` ) as { rows : any [ ] } ;
168+ expect ( result . rows ) . toHaveLength ( 3 ) ;
168169 } ) ;
170+
169171 it ( "handles INNER JOIN" , ( ) => {
170- db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
171- db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
172- db . query ( `INSERT INTO orders (id, user_id, product) VALUES (1, 1, "Laptop")` ) ;
173- db . query ( `INSERT INTO orders (id, user_id, product) VALUES (2, 1, "Mouse")` ) ;
174- db . query ( `INSERT INTO orders (id, user_id, product) VALUES (3, 2, "Keyboard")` ) ;
175-
176- const result = db . query (
177- `SELECT users.name, orders.product FROM users JOIN orders ON users.id = orders.user_id`
178- ) ;
179-
180- expect ( result ) . toHaveLength ( 3 ) ;
181- expect ( result ) . toEqual ( [
182- { "users.name" : "Alice" , "orders.product" : "Laptop" } ,
183- { "users.name" : "Alice" , "orders.product" : "Mouse" } ,
184- { "users.name" : "Bob" , "orders.product" : "Keyboard" }
185- ] ) ;
186- } ) ;
172+ db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
173+ db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
174+ db . query ( `INSERT INTO orders (id, user_id, product) VALUES (1, 1, "Laptop")` ) ;
175+ db . query ( `INSERT INTO orders (id, user_id, product) VALUES (2, 1, "Mouse")` ) ;
176+ db . query ( `INSERT INTO orders (id, user_id, product) VALUES (3, 2, "Keyboard")` ) ;
187177
188- it ( "handles INNER JOIN with INNER keyword" , ( ) => {
189- db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
190- db . query ( `INSERT INTO orders (id, user_id, product) VALUES (1, 1, "Laptop")` ) ;
178+ const result = db . query (
179+ `SELECT users.name, orders.product FROM users JOIN orders ON users.id = orders.user_id`
180+ ) as { rows : any [ ] } ;
181+
182+ expect ( result . rows ) . toHaveLength ( 3 ) ;
183+ expect ( result . rows ) . toEqual ( [
184+ { "users.name" : "Alice" , "orders.product" : "Laptop" } ,
185+ { "users.name" : "Alice" , "orders.product" : "Mouse" } ,
186+ { "users.name" : "Bob" , "orders.product" : "Keyboard" }
187+ ] ) ;
188+ } ) ;
191189
192- const result = db . query (
193- `SELECT users.name, orders.product FROM users INNER JOIN orders ON users.id = orders.user_id`
194- ) ;
195-
196- expect ( result ) . toHaveLength ( 1 ) ;
197- expect ( result [ 0 ] ) . toEqual ( { "users.name" : "Alice" , "orders.product" : "Laptop" } ) ;
198- } ) ;
190+ it ( "handles INNER JOIN with INNER keyword" , ( ) => {
191+ db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
192+ db . query ( `INSERT INTO orders (id, user_id, product) VALUES (1, 1, "Laptop")` ) ;
199193
200- it ( "handles LEFT JOIN" , ( ) => {
201- db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
202- db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
203- db . query ( `INSERT INTO users (id, name) VALUES (3, "Carol")` ) ;
204- db . query ( `INSERT INTO orders (id, user_id, product) VALUES (1, 1, "Laptop")` ) ;
205- db . query ( `INSERT INTO orders (id, user_id, product) VALUES (2, 1, "Mouse")` ) ;
206-
207- const result = db . query (
208- `SELECT users.name, orders.product FROM users LEFT JOIN orders ON users.id = orders.user_id`
209- ) ;
210-
211- expect ( result ) . toHaveLength ( 4 ) ;
212- expect ( result . map ( r => r [ "users.name" ] ) . sort ( ) ) . toEqual ( [ "Alice" , "Alice" , "Bob" , "Carol" ] ) ;
213-
214- const bobOrder = result . find ( r => r [ "users.name" ] === "Bob" ) ;
215- expect ( bobOrder [ "orders.product" ] ) . toBeUndefined ( ) ;
216- } ) ;
194+ const result = db . query (
195+ `SELECT users.name, orders.product FROM users INNER JOIN orders ON users.id = orders.user_id`
196+ ) as { rows : any [ ] } ;
197+
198+ expect ( result . rows ) . toHaveLength ( 1 ) ;
199+ expect ( result . rows [ 0 ] ) . toEqual ( { "users.name" : "Alice" , "orders.product" : "Laptop" } ) ;
200+ } ) ;
217201
218- it ( "handles JOIN with WHERE clause" , ( ) => {
219- db . query ( `INSERT INTO users (id, name, age) VALUES (1, "Alice", 25)` ) ;
220- db . query ( `INSERT INTO users (id, name, age) VALUES (2, "Bob", 30)` ) ;
221- db . query ( `INSERT INTO orders (id, user_id, product) VALUES (1, 1, "Laptop")` ) ;
222- db . query ( `INSERT INTO orders (id, user_id, product) VALUES (2, 2, "Mouse")` ) ;
223-
224- const result = db . query (
225- `SELECT users.name, orders.product FROM users JOIN orders ON users.id = orders.user_id WHERE users.age > 25`
226- ) ;
227-
228- expect ( result ) . toHaveLength ( 1 ) ;
229- expect ( result [ 0 ] ) . toEqual ( { "users.name" : "Bob" , "orders.product" : "Mouse" } ) ;
230- } ) ;
202+ it ( "handles LEFT JOIN" , ( ) => {
203+ db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
204+ db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
205+ db . query ( `INSERT INTO users (id, name) VALUES (3, "Carol")` ) ;
206+ db . query ( `INSERT INTO orders (id, user_id, product) VALUES (1, 1, "Laptop")` ) ;
207+ db . query ( `INSERT INTO orders (id, user_id, product) VALUES (2, 1, "Mouse")` ) ;
231208
232- it ( "handles JOIN with ORDER BY and LIMIT" , ( ) => {
233- db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
234- db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
235- db . query ( `INSERT INTO orders (id, user_id, product, price) VALUES (1, 1, "Laptop", 1000)` ) ;
236- db . query ( `INSERT INTO orders (id, user_id, product, price) VALUES (2, 1, "Mouse", 20)` ) ;
237- db . query ( `INSERT INTO orders (id, user_id, product, price) VALUES (3, 2, "Keyboard", 50)` ) ;
238-
239- const result = db . query (
240- `SELECT users.name, orders.product, orders.price FROM users JOIN orders ON users.id = orders.user_id ORDER BY orders.price DESC LIMIT 2`
241- ) ;
242-
243- expect ( result ) . toHaveLength ( 2 ) ;
244- expect ( result [ 0 ] [ "orders.product" ] ) . toBe ( "Laptop" ) ;
245- expect ( result [ 1 ] [ "orders.product" ] ) . toBe ( "Keyboard" ) ;
246- } ) ;
247- } )
209+ const result = db . query (
210+ `SELECT users.name, orders.product FROM users LEFT JOIN orders ON users.id = orders.user_id`
211+ ) as { rows : any [ ] } ;
212+
213+ expect ( result . rows ) . toHaveLength ( 4 ) ;
214+ expect ( result . rows . map ( r => r [ "users.name" ] ) . sort ( ) ) . toEqual ( [ "Alice" , "Alice" , "Bob" , "Carol" ] ) ;
215+
216+ const bobOrder = result . rows . find ( r => r [ "users.name" ] === "Bob" ) ;
217+ expect ( bobOrder ! [ "orders.product" ] ) . toBeUndefined ( ) ;
218+ } ) ;
219+
220+ it ( "handles JOIN with WHERE clause" , ( ) => {
221+ db . query ( `INSERT INTO users (id, name, age) VALUES (1, "Alice", 25)` ) ;
222+ db . query ( `INSERT INTO users (id, name, age) VALUES (2, "Bob", 30)` ) ;
223+ db . query ( `INSERT INTO orders (id, user_id, product) VALUES (1, 1, "Laptop")` ) ;
224+ db . query ( `INSERT INTO orders (id, user_id, product) VALUES (2, 2, "Mouse")` ) ;
225+
226+ const result = db . query (
227+ `SELECT users.name, orders.product FROM users JOIN orders ON users.id = orders.user_id WHERE users.age > 25`
228+ ) as { rows : any [ ] } ;
229+
230+ expect ( result . rows ) . toHaveLength ( 1 ) ;
231+ expect ( result . rows [ 0 ] ) . toEqual ( { "users.name" : "Bob" , "orders.product" : "Mouse" } ) ;
232+ } ) ;
233+
234+ it ( "handles JOIN with ORDER BY and LIMIT" , ( ) => {
235+ db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
236+ db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
237+ db . query ( `INSERT INTO orders (id, user_id, product, price) VALUES (1, 1, "Laptop", 1000)` ) ;
238+ db . query ( `INSERT INTO orders (id, user_id, product, price) VALUES (2, 1, "Mouse", 20)` ) ;
239+ db . query ( `INSERT INTO orders (id, user_id, product, price) VALUES (3, 2, "Keyboard", 50)` ) ;
240+
241+ const result = db . query (
242+ `SELECT users.name, orders.product, orders.price FROM users JOIN orders ON users.id = orders.user_id ORDER BY orders.price DESC LIMIT 2`
243+ ) as { rows : any [ ] } ;
244+
245+ expect ( result . rows ) . toHaveLength ( 2 ) ;
246+ expect ( result . rows [ 0 ] [ "orders.product" ] ) . toBe ( "Laptop" ) ;
247+ expect ( result . rows [ 1 ] [ "orders.product" ] ) . toBe ( "Keyboard" ) ;
248+ } ) ;
249+
250+ it ( "returns correct INSERT result format" , ( ) => {
251+ const result = db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) as { rows : any [ ] ; rowCount : number } ;
252+
253+ expect ( result . rows ) . toHaveLength ( 1 ) ;
254+ expect ( result . rows [ 0 ] ) . toEqual ( { id : "1" , name : "Alice" } ) ;
255+ expect ( result . rowCount ) . toBe ( 1 ) ;
256+ } ) ;
257+
258+ it ( "returns correct UPDATE result format" , ( ) => {
259+ db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
260+ db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
261+
262+ const result = db . query ( `UPDATE users SET name = "Updated" WHERE id = 1` ) as { rows : any [ ] ; rowCount : number } ;
263+
264+ expect ( result . rows ) . toEqual ( [ ] ) ;
265+ expect ( result . rowCount ) . toBe ( 1 ) ;
266+ } ) ;
267+
268+ it ( "returns correct DELETE result format" , ( ) => {
269+ db . query ( `INSERT INTO users (id, name) VALUES (1, "Alice")` ) ;
270+ db . query ( `INSERT INTO users (id, name) VALUES (2, "Bob")` ) ;
271+
272+ const result = db . query ( `DELETE FROM users WHERE id = 1` ) as { rows : any [ ] ; rowCount : number } ;
273+
274+ expect ( result . rows ) . toEqual ( [ ] ) ;
275+ expect ( result . rowCount ) . toBe ( 1 ) ;
276+ } ) ;
277+ } ) ;
0 commit comments