@@ -3,17 +3,16 @@ import * as React from 'react';
3
3
import TestRenderer , { type ReactTestRenderer } from 'react-test-renderer' ; // eslint-disable-line import/no-extraneous-dependencies
4
4
import act from './act' ;
5
5
import { addToCleanupQueue } from './cleanup' ;
6
- import { getByAPI } from './helpers/getByAPI' ;
7
- import { queryByAPI } from './helpers/queryByAPI' ;
8
- import { findByAPI } from './helpers/findByAPI' ;
9
- import a11yAPI from './helpers/a11yAPI' ;
10
6
import debugShallow from './helpers/debugShallow' ;
11
7
import debugDeep from './helpers/debugDeep' ;
8
+ import { getQueriesForElement } from './within' ;
12
9
13
10
type Options = {
14
11
wrapper ?: React . ComponentType < any > ,
15
12
createNodeMock ?: ( element : React . Element < any > ) => any ,
16
- queries ?: ( instance : ReactTestInstance ) => any ,
13
+ queries ?: {
14
+ [ key : string ] : ( instance : ReactTestInstance , ...rest : Array < any > ) => any ,
15
+ } ,
17
16
} ;
18
17
type TestRendererOptions = {
19
18
createNodeMock : ( element : React . Element < any > ) => any ,
@@ -25,7 +24,7 @@ type TestRendererOptions = {
25
24
*/
26
25
export default function render < T > (
27
26
component: React.Element< T > ,
28
- { wrapper : Wrapper , createNodeMock , queries = ( ) => ( { } ) } : Options = { }
27
+ { wrapper : Wrapper , createNodeMock , queries = { } } : Options = { }
29
28
) {
30
29
const wrap = ( innerElement : React . Element < any > ) =>
31
30
Wrapper ? < Wrapper > { innerElement } </ Wrapper > : innerElement ;
@@ -37,14 +36,17 @@ export default function render<T>(
37
36
const update = updateWithAct ( renderer , wrap ) ;
38
37
const instance = renderer . root ;
39
38
39
+ for ( let query in queries ) {
40
+ queries [ query ] = queries [ query ] . bind ( null , instance ) ;
41
+ }
42
+
40
43
addToCleanupQueue(renderer.unmount);
41
44
42
45
return {
43
- ...getByAPI ( instance ) ,
44
- ...queryByAPI ( instance ) ,
45
- ...findByAPI ( instance ) ,
46
- ...a11yAPI ( instance ) ,
47
- ...queries ( instance ) ,
46
+ ...( queries : {
47
+ [ key : $Keys < typeof queries > ] : ( ...rest : Array < any > ) => any ,
48
+ } ) ,
49
+ ...getQueriesForElement ( instance ) ,
48
50
update ,
49
51
rerender : update , // alias for `update`
50
52
unmount : renderer . unmount ,
0 commit comments