@@ -33,6 +33,7 @@ export default createTestingLibraryRule<Options, MessageIds>({
3333 wrongAbsenceQuery :
3434 'Use `queryBy*` queries rather than `getBy*` for checking element is NOT present' ,
3535 } ,
36+ fixable : 'code' ,
3637 schema : [
3738 {
3839 type : 'object' ,
@@ -62,7 +63,7 @@ export default createTestingLibraryRule<Options, MessageIds>({
6263 const expectCallNode = findClosestCallNode ( node , 'expect' ) ;
6364 const withinCallNode = findClosestCallNode ( node , 'within' ) ;
6465
65- if ( ! expectCallNode || ! isMemberExpression ( expectCallNode . parent ) ) {
66+ if ( ! isMemberExpression ( expectCallNode ? .parent ) ) {
6667 return ;
6768 }
6869
@@ -86,14 +87,25 @@ export default createTestingLibraryRule<Options, MessageIds>({
8687 ( withinCallNode || isPresenceAssert ) &&
8788 ! isPresenceQuery
8889 ) {
89- context . report ( { node, messageId : 'wrongPresenceQuery' } ) ;
90+ const newQueryName = node . name . replace ( / ^ q u e r y / , 'get' ) ;
91+
92+ context . report ( {
93+ node,
94+ messageId : 'wrongPresenceQuery' ,
95+ fix : ( fixer ) => fixer . replaceText ( node , newQueryName ) ,
96+ } ) ;
9097 } else if (
9198 ! withinCallNode &&
9299 absence &&
93100 isAbsenceAssert &&
94101 isPresenceQuery
95102 ) {
96- context . report ( { node, messageId : 'wrongAbsenceQuery' } ) ;
103+ const newQueryName = node . name . replace ( / ^ g e t / , 'query' ) ;
104+ context . report ( {
105+ node,
106+ messageId : 'wrongAbsenceQuery' ,
107+ fix : ( fixer ) => fixer . replaceText ( node , newQueryName ) ,
108+ } ) ;
97109 }
98110 } ,
99111 } ;
0 commit comments