@@ -89,9 +89,9 @@ type IsAbsenceAssertFn = (node: TSESTree.MemberExpression) => boolean;
89
89
type CanReportErrorsFn = ( ) => boolean ;
90
90
type FindImportedTestingLibraryUtilSpecifierFn = (
91
91
specifierName : string
92
- ) => TSESTree . ImportClause | TSESTree . Identifier | undefined ;
92
+ ) => TSESTree . Identifier | TSESTree . ImportClause | undefined ;
93
93
type IsNodeComingFromTestingLibraryFn = (
94
- node : TSESTree . MemberExpression | TSESTree . Identifier
94
+ node : TSESTree . Identifier | TSESTree . MemberExpression
95
95
) => boolean ;
96
96
97
97
export interface DetectionHelpers {
@@ -181,7 +181,7 @@ export function detectTestingLibraryUtils<
181
181
* reporting)
182
182
*/
183
183
function isPotentialTestingLibraryFunction (
184
- node : TSESTree . Identifier ,
184
+ node : TSESTree . Identifier | null | undefined ,
185
185
isPotentialFunctionCallback : (
186
186
identifierNodeName : string ,
187
187
originalNodeName ?: string
@@ -472,9 +472,8 @@ export function detectTestingLibraryUtils<
472
472
* Determines whether a given node is fireEvent method or not
473
473
*/
474
474
const isFireEventMethod : IsFireEventMethodFn = ( node ) => {
475
- const fireEventUtil = findImportedTestingLibraryUtilSpecifier (
476
- FIRE_EVENT_NAME
477
- ) ;
475
+ const fireEventUtil =
476
+ findImportedTestingLibraryUtilSpecifier ( FIRE_EVENT_NAME ) ;
478
477
let fireEventUtilName : string | undefined ;
479
478
480
479
if ( fireEventUtil ) {
@@ -655,9 +654,8 @@ export function detectTestingLibraryUtils<
655
654
return false ;
656
655
}
657
656
const referenceNode = getReferenceNode ( node ) ;
658
- const referenceNodeIdentifier = getPropertyIdentifierNode (
659
- referenceNode
660
- ) ;
657
+ const referenceNodeIdentifier =
658
+ getPropertyIdentifierNode ( referenceNode ) ;
661
659
if ( ! referenceNodeIdentifier ) {
662
660
return false ;
663
661
}
@@ -759,54 +757,58 @@ export function detectTestingLibraryUtils<
759
757
/**
760
758
* Finds the import util specifier related to Testing Library for a given name.
761
759
*/
762
- const findImportedTestingLibraryUtilSpecifier : FindImportedTestingLibraryUtilSpecifierFn = (
763
- specifierName
764
- ) : TSESTree . ImportClause | TSESTree . Identifier | undefined => {
765
- const node = getCustomModuleImportNode ( ) ?? getTestingLibraryImportNode ( ) ;
760
+ const findImportedTestingLibraryUtilSpecifier : FindImportedTestingLibraryUtilSpecifierFn =
761
+ (
762
+ specifierName
763
+ ) : TSESTree . Identifier | TSESTree . ImportClause | undefined => {
764
+ const node =
765
+ getCustomModuleImportNode ( ) ?? getTestingLibraryImportNode ( ) ;
766
+
767
+ if ( ! node ) {
768
+ return undefined ;
769
+ }
766
770
767
- if ( ! node ) {
768
- return undefined ;
769
- }
771
+ return findImportSpecifier ( specifierName , node ) ;
772
+ } ;
770
773
771
- return findImportSpecifier ( specifierName , node ) ;
772
- } ;
774
+ const findImportedUserEventSpecifier : ( ) => TSESTree . Identifier | null =
775
+ ( ) => {
776
+ if ( ! importedUserEventLibraryNode ) {
777
+ return null ;
778
+ }
773
779
774
- const findImportedUserEventSpecifier : ( ) => TSESTree . Identifier | null = ( ) => {
775
- if ( ! importedUserEventLibraryNode ) {
776
- return null ;
777
- }
780
+ if ( isImportDeclaration ( importedUserEventLibraryNode ) ) {
781
+ const userEventIdentifier =
782
+ importedUserEventLibraryNode . specifiers . find ( ( specifier ) =>
783
+ isImportDefaultSpecifier ( specifier )
784
+ ) ;
778
785
779
- if ( isImportDeclaration ( importedUserEventLibraryNode ) ) {
780
- const userEventIdentifier = importedUserEventLibraryNode . specifiers . find (
781
- ( specifier ) => isImportDefaultSpecifier ( specifier )
782
- ) ;
786
+ if ( userEventIdentifier ) {
787
+ return userEventIdentifier . local ;
788
+ }
789
+ } else {
790
+ if (
791
+ ! ASTUtils . isVariableDeclarator ( importedUserEventLibraryNode . parent )
792
+ ) {
793
+ return null ;
794
+ }
783
795
784
- if ( userEventIdentifier ) {
785
- return userEventIdentifier . local ;
786
- }
787
- } else {
788
- if (
789
- ! ASTUtils . isVariableDeclarator ( importedUserEventLibraryNode . parent )
790
- ) {
791
- return null ;
792
- }
796
+ const requireNode = importedUserEventLibraryNode . parent ;
797
+ if ( ! ASTUtils . isIdentifier ( requireNode . id ) ) {
798
+ return null ;
799
+ }
793
800
794
- const requireNode = importedUserEventLibraryNode . parent ;
795
- if ( ! ASTUtils . isIdentifier ( requireNode . id ) ) {
796
- return null ;
801
+ return requireNode . id ;
797
802
}
798
803
799
- return requireNode . id ;
800
- }
801
-
802
- return null ;
803
- } ;
804
+ return null ;
805
+ } ;
804
806
805
807
const getTestingLibraryImportedUtilSpecifier = (
806
- node : TSESTree . MemberExpression | TSESTree . Identifier
807
- ) : TSESTree . ImportClause | TSESTree . Identifier | undefined => {
808
- const identifierName : string | undefined = getPropertyIdentifierNode ( node )
809
- ?. name ;
808
+ node : TSESTree . Identifier | TSESTree . MemberExpression
809
+ ) : TSESTree . Identifier | TSESTree . ImportClause | undefined => {
810
+ const identifierName : string | undefined =
811
+ getPropertyIdentifierNode ( node ) ?. name ;
810
812
811
813
if ( ! identifierName ) {
812
814
return undefined ;
@@ -848,9 +850,8 @@ export function detectTestingLibraryUtils<
848
850
return importNode . parent ;
849
851
}
850
852
851
- const variableDeclarator = findClosestVariableDeclaratorNode (
852
- importNode
853
- ) ;
853
+ const variableDeclarator =
854
+ findClosestVariableDeclaratorNode ( importNode ) ;
854
855
855
856
if ( isCallExpression ( variableDeclarator ?. init ) ) {
856
857
return variableDeclarator ?. init ;
@@ -868,8 +869,8 @@ export function detectTestingLibraryUtils<
868
869
return false ;
869
870
}
870
871
871
- const identifierName : string | undefined = getPropertyIdentifierNode ( node )
872
- ?. name ;
872
+ const identifierName : string | undefined =
873
+ getPropertyIdentifierNode ( node ) ?. name ;
873
874
874
875
if ( ! identifierName ) {
875
876
return false ;
@@ -1045,6 +1046,8 @@ export function detectTestingLibraryUtils<
1045
1046
if ( canReportErrors ( ) && ruleInstructions [ instruction ] ) {
1046
1047
return ruleInstructions [ instruction ] ?.( node ) ;
1047
1048
}
1049
+
1050
+ return undefined ;
1048
1051
} ;
1049
1052
} ) ;
1050
1053
0 commit comments