File tree Expand file tree Collapse file tree 2 files changed +16
-10
lines changed Expand file tree Collapse file tree 2 files changed +16
-10
lines changed Original file line number Diff line number Diff line change 1
- import { waitFor } from './wait-for'
1
+ import { waitFor , WaitForOptions } from './wait-for'
2
2
3
3
const isRemoved = result => ! result || ( Array . isArray ( result ) && ! result . length )
4
4
@@ -12,26 +12,32 @@ function initialCheck(elements) {
12
12
}
13
13
}
14
14
15
- async function waitForElementToBeRemoved ( callback , options ) {
15
+ async function waitForElementToBeRemoved < T extends Node > (
16
+ callback : ( ( ) => T | T [ ] ) | T | T [ ] ,
17
+ options ?: WaitForOptions ,
18
+ ) {
16
19
// created here so we get a nice stacktrace
17
20
const timeoutError = new Error ( 'Timed out in waitForElementToBeRemoved.' )
21
+ let cb
18
22
if ( typeof callback !== 'function' ) {
19
23
initialCheck ( callback )
20
- const elements = Array . isArray ( callback ) ? callback : [ callback ]
24
+ const elements : Array < T > = Array . isArray ( callback ) ? callback : [ callback ]
21
25
const getRemainingElements = elements . map ( element => {
22
26
let parent = element . parentElement
23
27
while ( parent . parentElement ) parent = parent . parentElement
24
28
return ( ) => ( parent . contains ( element ) ? element : null )
25
29
} )
26
- callback = ( ) => getRemainingElements . map ( c => c ( ) ) . filter ( Boolean )
30
+ cb = ( ) => getRemainingElements . map ( c => c ( ) ) . filter ( Boolean )
31
+ } else {
32
+ cb = callback
27
33
}
28
34
29
- initialCheck ( callback ( ) )
35
+ initialCheck ( cb ( ) )
30
36
31
37
return waitFor ( ( ) => {
32
38
let result
33
39
try {
34
- result = callback ( )
40
+ result = cb ( )
35
41
} catch ( error ) {
36
42
if ( error . name === 'TestingLibraryElementError' ) {
37
43
return true
Original file line number Diff line number Diff line change 1
1
import { WaitForOptions } from './wait-for'
2
-
3
- export function waitForElementToBeRemoved < T > (
4
- callback : ( ( ) => T ) | T ,
2
+ declare function waitForElementToBeRemoved < T extends Node > (
3
+ callback : ( ( ) => T | T [ ] ) | T | T [ ] ,
5
4
options ?: WaitForOptions ,
6
- ) : Promise < T >
5
+ ) : Promise < boolean >
6
+ export { waitForElementToBeRemoved }
You can’t perform that action at this time.
0 commit comments