Skip to content

Commit 5c43e3e

Browse files
committed
test(no-deprecated-functions): update tests for non-throwing behavior
1 parent 9a2646a commit 5c43e3e

File tree

1 file changed

+54
-56
lines changed

1 file changed

+54
-56
lines changed

src/rules/__tests__/no-deprecated-functions.test.ts

Lines changed: 54 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
1-
import { TSESLint } from '@typescript-eslint/utils';
1+
import type { TSESLint } from '@typescript-eslint/utils';
22
import 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

126
jest.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

1812
const 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

Comments
 (0)