File tree 2 files changed +14
-3
lines changed
2 files changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -622,9 +622,7 @@ type VitestAssertion<A, T> = {
622
622
623
623
type Promisify < O > = {
624
624
[ K in keyof O ] : O [ K ] extends ( ...args : infer A ) => infer R
625
- ? O extends R
626
- ? Promisify < O [ K ] >
627
- : ( ...args : A ) => Promise < R >
625
+ ? Promisify < O [ K ] > & ( ( ...args : A ) => Promise < R > )
628
626
: O [ K ] ;
629
627
}
630
628
Original file line number Diff line number Diff line change @@ -1172,6 +1172,19 @@ describe('async expect', () => {
1172
1172
expect ( error ) . toMatchObject ( { message : 'promise rejected "+0" instead of resolving' } )
1173
1173
}
1174
1174
} )
1175
+
1176
+ it ( 'chainable types' , async ( ) => {
1177
+ /* eslint-disable prefer-promise-reject-errors */
1178
+ await expect ( Promise . resolve ( 1 ) ) . resolves . toBeOneOf ( [ 1 ] )
1179
+ await expect ( Promise . resolve ( 1 ) ) . resolves . not . toBeOneOf ( [ 2 ] )
1180
+ await expect ( Promise . reject ( 1 ) ) . rejects . toBeOneOf ( [ 1 ] )
1181
+ await expect ( Promise . reject ( 1 ) ) . rejects . not . toBeOneOf ( [ 2 ] )
1182
+ await expect ( Promise . resolve ( 1 ) ) . resolves . toSatisfy ( v => v === 1 )
1183
+ await expect ( Promise . reject ( 2 ) ) . rejects . toSatisfy ( v => v === 2 )
1184
+ await ( expect ( Promise . resolve ( 1 ) ) . resolves . to . equal ( 1 ) satisfies Promise < any > )
1185
+ await ( expect ( Promise . resolve ( 1 ) ) . resolves . not . to . equal ( 2 ) satisfies Promise < any > )
1186
+ /* eslint-enable prefer-promise-reject-errors */
1187
+ } )
1175
1188
} )
1176
1189
1177
1190
it ( 'compatible with jest' , ( ) => {
You can’t perform that action at this time.
0 commit comments