@@ -3,22 +3,22 @@ import { Database } from './types.override'
3
3
import { Database as DatabasePostgrest13 } from './types.override-with-options-postgrest13'
4
4
import { expectType } from 'tsd'
5
5
import { InvalidMethodError } from '../src/PostgrestFilterBuilder'
6
+ import { Json } from './types.generated'
6
7
7
8
const REST_URL_13 = 'http://localhost:3001'
8
9
const postgrest13 = new PostgrestClient < DatabasePostgrest13 > ( REST_URL_13 )
9
10
const postgrest12 = new PostgrestClient < Database > ( REST_URL_13 )
10
11
11
12
describe ( 'maxAffected' , ( ) => {
12
- // Type checking tests
13
- test ( 'maxAffected should show type warning on postgrest 12 clients' , async ( ) => {
13
+ test ( 'types: maxAffected should show type warning on postgrest 12 clients' , async ( ) => {
14
14
const resUpdate = await postgrest12
15
15
. from ( 'messages' )
16
16
. update ( { channel_id : 2 } )
17
17
. eq ( 'message' , 'foo' )
18
18
. maxAffected ( 1 )
19
19
expectType < InvalidMethodError < 'maxAffected method only available on postgrest 13+' > > ( resUpdate )
20
20
} )
21
- test ( 'maxAffected should show type warning on non update / delete' , async ( ) => {
21
+ test ( 'types: maxAffected should show type warning on non update / delete' , async ( ) => {
22
22
const resSelect = await postgrest13 . from ( 'messages' ) . select ( '*' ) . maxAffected ( 10 )
23
23
const resInsert = await postgrest13
24
24
. from ( 'messages' )
@@ -59,7 +59,6 @@ describe('maxAffected', () => {
59
59
)
60
60
} )
61
61
62
- // Runtime behavior tests
63
62
test ( 'update should fail when maxAffected is exceeded' , async ( ) => {
64
63
// First create multiple rows
65
64
await postgrest13 . from ( 'messages' ) . insert ( [
@@ -74,6 +73,7 @@ describe('maxAffected', () => {
74
73
. update ( { message : 'updated' } )
75
74
. eq ( 'message' , 'test1' )
76
75
. maxAffected ( 2 )
76
+
77
77
const { error } = result
78
78
expect ( error ) . toBeDefined ( )
79
79
expect ( error ?. code ) . toBe ( 'PGRST124' )
@@ -92,7 +92,16 @@ describe('maxAffected', () => {
92
92
. eq ( 'message' , 'test2' )
93
93
. maxAffected ( 2 )
94
94
. select ( )
95
-
95
+ expectType <
96
+ | {
97
+ channel_id : number
98
+ data : Json | null
99
+ id : number
100
+ message : string | null
101
+ username : string
102
+ } [ ]
103
+ | null
104
+ > ( data )
96
105
expect ( error ) . toBeNull ( )
97
106
expect ( data ) . toHaveLength ( 1 )
98
107
expect ( data ?. [ 0 ] . message ) . toBe ( 'updated' )
@@ -113,7 +122,6 @@ describe('maxAffected', () => {
113
122
. eq ( 'message' , 'test3' )
114
123
. maxAffected ( 2 )
115
124
. select ( )
116
-
117
125
expect ( error ) . toBeDefined ( )
118
126
expect ( error ?. code ) . toBe ( 'PGRST124' )
119
127
} )
0 commit comments