@@ -18,6 +18,7 @@ import {
18
18
max ,
19
19
min ,
20
20
Name ,
21
+ notInArray ,
21
22
placeholder ,
22
23
sql ,
23
24
sum ,
@@ -534,6 +535,34 @@ export function tests(driver?: string) {
534
535
expect ( users ) . toEqual ( [ { name : 'JOHN' } ] ) ;
535
536
} ) ;
536
537
538
+ test ( 'select with empty array in inArray' , async ( ctx ) => {
539
+ const { db } = ctx . mysql ;
540
+
541
+ await db . insert ( usersTable ) . values ( [ { name : 'John' } , { name : 'Jane' } , { name : 'Jane' } ] ) ;
542
+ const result = await db
543
+ . select ( {
544
+ name : sql `upper(${ usersTable . name } )` ,
545
+ } )
546
+ . from ( usersTable )
547
+ . where ( inArray ( usersTable . id , [ ] ) ) ;
548
+
549
+ expect ( result ) . toEqual ( [ ] ) ;
550
+ } ) ;
551
+
552
+ test ( 'select with empty array in notInArray' , async ( ctx ) => {
553
+ const { db } = ctx . mysql ;
554
+
555
+ await db . insert ( usersTable ) . values ( [ { name : 'John' } , { name : 'Jane' } , { name : 'Jane' } ] ) ;
556
+ const result = await db
557
+ . select ( {
558
+ name : sql `upper(${ usersTable . name } )` ,
559
+ } )
560
+ . from ( usersTable )
561
+ . where ( notInArray ( usersTable . id , [ ] ) ) ;
562
+
563
+ expect ( result ) . toEqual ( [ { name : 'JOHN' } , { name : 'JANE' } , { name : 'JANE' } ] ) ;
564
+ } ) ;
565
+
537
566
test ( 'select distinct' , async ( ctx ) => {
538
567
const { db } = ctx . mysql ;
539
568
@@ -3486,4 +3515,28 @@ export function tests(driver?: string) {
3486
3515
await db . execute ( sql `drop view ${ newYorkers1 } ` ) ;
3487
3516
} ) ;
3488
3517
} ) ;
3518
+
3519
+ test ( 'limit 0' , async ( ctx ) => {
3520
+ const { db } = ctx . mysql ;
3521
+
3522
+ await db . insert ( usersTable ) . values ( { name : 'John' } ) ;
3523
+ const users = await db
3524
+ . select ( )
3525
+ . from ( usersTable )
3526
+ . limit ( 0 ) ;
3527
+
3528
+ expect ( users ) . toEqual ( [ ] ) ;
3529
+ } ) ;
3530
+
3531
+ test ( 'limit -1' , async ( ctx ) => {
3532
+ const { db } = ctx . mysql ;
3533
+
3534
+ await db . insert ( usersTable ) . values ( { name : 'John' } ) ;
3535
+ const users = await db
3536
+ . select ( )
3537
+ . from ( usersTable )
3538
+ . limit ( - 1 ) ;
3539
+
3540
+ expect ( users . length ) . toBeGreaterThan ( 0 ) ;
3541
+ } ) ;
3489
3542
}
0 commit comments