1- import { TSESLint } from '@typescript-eslint/utils' ;
1+ import type { TSESLint } from '@typescript-eslint/utils' ;
22import rule from '../no-deprecated-functions' ;
3- import {
4- type JestVersion ,
5- detectJestVersion ,
6- } from '../utils/detectJestVersion' ;
7- import {
8- FlatCompatRuleTester as RuleTester ,
9- usingFlatConfig ,
10- } from './test-utils' ;
3+ import { type JestVersion , getJestVersion } from '../utils/detectJestVersion' ;
4+ import { FlatCompatRuleTester as RuleTester } from './test-utils' ;
115
126jest . mock ( '../utils/detectJestVersion' ) ;
137
14- const detectJestVersionMock = detectJestVersion as jest . MockedFunction <
15- typeof detectJestVersion
8+ const getJestVersionMock = getJestVersion as jest . MockedFunction <
9+ typeof getJestVersion
1610> ;
1711
1812const ruleTester = new RuleTester ( ) ;
@@ -67,11 +61,6 @@ describe('the rule', () => {
6761 valid : [
6862 { code : 'jest' , settings : { jest : { version : 14 } } } ,
6963 { code : 'require("fs")' , settings : { jest : { version : 14 } } } ,
70- ...generateValidCases ( 14 , 'jest.resetModuleRegistry' ) ,
71- ...generateValidCases ( 17 , 'require.requireActual' ) ,
72- ...generateValidCases ( 25 , 'jest.genMockFromModule' ) ,
73- ...generateValidCases ( '25.1.1' , 'jest.genMockFromModule' ) ,
74- ...generateValidCases ( '17.2' , 'require.requireActual' ) ,
7564 ] ,
7665 invalid : [
7766 ...generateInvalidCases (
@@ -90,14 +79,53 @@ describe('the rule', () => {
9079 'jest.genMockFromModule' ,
9180 'jest.createMockFromModule' ,
9281 ) ,
82+ ...generateInvalidCases (
83+ 14 ,
84+ 'jest.resetModuleRegistry' ,
85+ 'jest.resetModules' ,
86+ ) ,
87+ ...generateInvalidCases (
88+ 17 ,
89+ 'require.requireActual' ,
90+ 'jest.requireActual' ,
91+ ) ,
92+ ...generateInvalidCases (
93+ 25 ,
94+ 'jest.genMockFromModule' ,
95+ 'jest.createMockFromModule' ,
96+ ) ,
97+ ...generateInvalidCases (
98+ '25.1.1' ,
99+ 'jest.genMockFromModule' ,
100+ 'jest.createMockFromModule' ,
101+ ) ,
102+ ...generateInvalidCases (
103+ '17.2' ,
104+ 'require.requireActual' ,
105+ 'jest.requireActual' ,
106+ ) ,
93107 ] ,
94108 } ) ;
95109
96- describe . each < JestVersion > ( [
97- 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 ,
110+ describe . each < ReturnType < typeof getJestVersion > > ( [
111+ 14 ,
112+ 15 ,
113+ 16 ,
114+ 17 ,
115+ 18 ,
116+ 19 ,
117+ 20 ,
118+ 21 ,
119+ 22 ,
120+ 23 ,
121+ 24 ,
122+ 25 ,
123+ 26 ,
124+ 27 ,
125+ null ,
98126 ] ) ( 'when using jest version %i' , jestVersion => {
99127 beforeEach ( async ( ) => {
100- detectJestVersionMock . mockReturnValue ( jestVersion ) ;
128+ getJestVersionMock . mockReturnValue ( jestVersion ) ;
101129 } ) ;
102130
103131 const allowedFunctions : string [ ] = [ ] ;
@@ -111,7 +139,7 @@ describe('the rule', () => {
111139 [ 26 , 'jest.genMockFromModule' , 'jest.createMockFromModule' ] ,
112140 ] as const
113141 ) . filter ( deprecation => {
114- if ( deprecation [ 0 ] > jestVersion ) {
142+ if ( jestVersion && deprecation [ 0 ] > jestVersion ) {
115143 allowedFunctions . push ( deprecation [ 1 ] ) ;
116144
117145 return false ;
@@ -125,11 +153,15 @@ describe('the rule', () => {
125153 'jest' ,
126154 'require("fs")' ,
127155 ...allowedFunctions . flatMap ( func =>
128- generateValidCases ( jestVersion , func ) ,
156+ generateValidCases ( jestVersion ?? undefined , func ) ,
129157 ) ,
130158 ] ,
131159 invalid : deprecations . flatMap ( ( [ , deprecation , replacement ] ) =>
132- generateInvalidCases ( jestVersion , deprecation , replacement ) ,
160+ generateInvalidCases (
161+ jestVersion ?? undefined ,
162+ deprecation ,
163+ replacement ,
164+ ) ,
133165 ) ,
134166 } ) ;
135167
@@ -146,38 +178,4 @@ describe('the rule', () => {
146178 ) ,
147179 } ) ;
148180 } ) ;
149-
150- describe ( 'when there is an error in detecting the jest version' , ( ) => {
151- beforeEach ( ( ) => {
152- detectJestVersionMock . mockImplementation ( ( ) => {
153- throw new Error ( 'oh noes!' ) ;
154- } ) ;
155- } ) ;
156-
157- it ( 'bubbles the error up' , ( ) => {
158- expect ( ( ) => {
159- const linter = new TSESLint . Linter ( ) ;
160-
161- /* istanbul ignore if */
162- if ( usingFlatConfig ) {
163- linter . verify ( 'jest.resetModuleRegistry()' , [
164- {
165- plugins : {
166- jest : { rules : { 'no-deprecated-functions' : rule } } ,
167- } ,
168- rules : { 'jest/no-deprecated-functions' : 'error' } ,
169- } ,
170- ] ) ;
171-
172- return ;
173- }
174-
175- linter . defineRule ( 'no-deprecated-functions' , rule ) ;
176-
177- linter . verify ( 'jest.resetModuleRegistry()' , {
178- rules : { 'no-deprecated-functions' : 'error' } ,
179- } ) ;
180- } ) . toThrow ( 'oh noes!' ) ;
181- } ) ;
182- } ) ;
183181} ) ;
0 commit comments