Skip to content

Commit 24ed3b5

Browse files
authored
chore: use jest.mocked helper in more tests (#13117)
1 parent 240587b commit 24ed3b5

File tree

8 files changed

+84
-74
lines changed

8 files changed

+84
-74
lines changed

examples/typescript/__tests__/calc.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ jest.mock('../memory');
77
jest.mock('../sub');
88
jest.mock('../sum');
99

10-
const mockSub = sub as jest.MockedFunction<typeof sub>;
11-
const mockSum = sum as jest.MockedFunction<typeof sum>;
10+
const mockSub = jest.mocked(sub);
11+
const mockSum = jest.mocked(sum);
1212
const MockMemory = Memory as jest.MockedClass<typeof Memory>;
1313

1414
describe('calc - mocks', () => {

packages/jest-config/src/__tests__/normalize.test.ts

+6-8
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ beforeEach(() => {
6363
});
6464

6565
afterEach(() => {
66-
(console.warn as unknown as jest.SpyInstance).mockRestore();
66+
jest.mocked(console.warn).mockRestore();
6767
});
6868

6969
it('picks an id based on the rootDir', async () => {
@@ -148,7 +148,7 @@ describe('rootDir', () => {
148148

149149
describe('automock', () => {
150150
it('falsy automock is not overwritten', async () => {
151-
(console.warn as unknown as jest.SpyInstance).mockImplementation(() => {});
151+
jest.mocked(console.warn).mockImplementation(() => {});
152152
const {options} = await normalize(
153153
{
154154
automock: false,
@@ -1639,9 +1639,7 @@ describe('testPathPattern', () => {
16391639
const {options} = await normalize(initialOptions, argv);
16401640

16411641
expect(options.testPathPattern).toBe('');
1642-
expect(
1643-
(console.log as unknown as jest.SpyInstance).mock.calls[0][0],
1644-
).toMatchSnapshot();
1642+
expect(jest.mocked(console.log).mock.calls[0][0]).toMatchSnapshot();
16451643
});
16461644

16471645
it(`joins multiple ${opt.name} if set`, async () => {
@@ -1783,7 +1781,7 @@ describe('cwd', () => {
17831781
});
17841782

17851783
it('is not lost if the config has its own cwd property', async () => {
1786-
(console.warn as unknown as jest.SpyInstance).mockImplementation(() => {});
1784+
jest.mocked(console.warn).mockImplementation(() => {});
17871785
const {options} = await normalize(
17881786
{
17891787
cwd: '/tmp/config-sets-cwd-itself',
@@ -1851,7 +1849,7 @@ describe('displayName', () => {
18511849

18521850
describe('testTimeout', () => {
18531851
it('should return timeout value if defined', async () => {
1854-
(console.warn as unknown as jest.SpyInstance).mockImplementation(() => {});
1852+
jest.mocked(console.warn).mockImplementation(() => {});
18551853
const {options} = await normalize(
18561854
{rootDir: '/root/', testTimeout: 1000},
18571855
{} as Config.Argv,
@@ -2001,7 +1999,7 @@ describe('shards', () => {
20011999

20022000
describe('logs a deprecation warning', () => {
20032001
beforeEach(() => {
2004-
(console.warn as unknown as jest.SpyInstance).mockImplementation(() => {});
2002+
jest.mocked(console.warn).mockImplementation(() => {});
20052003
});
20062004

20072005
test("when 'browser' option is passed", async () => {

packages/jest-resolve/src/__mocks__/userResolver.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
import type {Resolver} from '../defaultResolver';
8+
import type {SyncResolver} from '../defaultResolver';
99

10-
declare const userResolver: Resolver;
10+
declare const userResolver: SyncResolver;
1111

1212
export default userResolver;

packages/jest-resolve/src/__mocks__/userResolverAsync.d.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
import type {Resolver} from '../defaultResolver';
8+
import type {AsyncResolver} from '../defaultResolver';
99

1010
// todo: can be replaced with jest.MockedFunction
11-
declare const userResolver: Resolver;
11+
declare const userResolver: {
12+
async: AsyncResolver;
13+
};
1214

1315
export default userResolver;

packages/jest-resolve/src/__tests__/resolve.test.ts

+25-21
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@ jest.mock('resolve', () => {
3131
return m;
3232
});
3333

34+
const mockUserResolver = jest.mocked(userResolver);
35+
const mockUserResolverAsync = jest.mocked(userResolverAsync);
3436
const mockResolveSync = jest.mocked(resolveSync);
3537

3638
beforeEach(() => {
37-
userResolver.mockClear();
38-
userResolverAsync.async.mockClear();
39+
mockUserResolver.mockClear();
40+
mockUserResolverAsync.async.mockClear();
3941
mockResolveSync.mockClear();
4042

4143
Resolver.clearDefaultResolverCache();
@@ -104,7 +106,7 @@ describe('findNodeModule', () => {
104106
.map(p => path.resolve(resolvedCwd, p))
105107
: null;
106108

107-
userResolver.mockImplementation(() => 'module');
109+
mockUserResolver.mockImplementation(() => 'module');
108110

109111
const newPath = Resolver.findNodeModule('test', {
110112
basedir: '/',
@@ -116,8 +118,8 @@ describe('findNodeModule', () => {
116118
});
117119

118120
expect(newPath).toBe('module');
119-
expect(userResolver.mock.calls[0][0]).toBe('test');
120-
expect(userResolver.mock.calls[0][1]).toStrictEqual({
121+
expect(mockUserResolver.mock.calls[0][0]).toBe('test');
122+
expect(mockUserResolver.mock.calls[0][1]).toStrictEqual({
121123
basedir: '/',
122124
conditions: ['conditions, woooo'],
123125
defaultResolver,
@@ -132,7 +134,7 @@ describe('findNodeModule', () => {
132134
const packageFilter = jest.fn();
133135

134136
// A resolver that delegates to defaultResolver with a packageFilter implementation
135-
userResolver.mockImplementation((request, opts) =>
137+
mockUserResolver.mockImplementation((request, opts) =>
136138
opts.defaultResolver(request, {...opts, packageFilter}),
137139
);
138140

@@ -309,7 +311,7 @@ describe('findNodeModuleAsync', () => {
309311
.map(p => path.resolve(resolvedCwd, p))
310312
: null;
311313

312-
userResolverAsync.async.mockImplementation(() => Promise.resolve('module'));
314+
mockUserResolverAsync.async.mockResolvedValue('module');
313315

314316
const newPath = await Resolver.findNodeModuleAsync('test', {
315317
basedir: '/',
@@ -321,8 +323,8 @@ describe('findNodeModuleAsync', () => {
321323
});
322324

323325
expect(newPath).toBe('module');
324-
expect(userResolverAsync.async.mock.calls[0][0]).toBe('test');
325-
expect(userResolverAsync.async.mock.calls[0][1]).toStrictEqual({
326+
expect(mockUserResolverAsync.async.mock.calls[0][0]).toBe('test');
327+
expect(mockUserResolverAsync.async.mock.calls[0][1]).toStrictEqual({
326328
basedir: '/',
327329
conditions: ['conditions, woooo'],
328330
defaultResolver,
@@ -337,7 +339,7 @@ describe('findNodeModuleAsync', () => {
337339
const packageFilter = jest.fn();
338340

339341
// A resolver that delegates to defaultResolver with a packageFilter implementation
340-
userResolverAsync.async.mockImplementation((request, opts) =>
342+
mockUserResolverAsync.async.mockImplementation((request, opts) =>
341343
Promise.resolve(opts.defaultResolver(request, {...opts, packageFilter})),
342344
);
343345

@@ -445,7 +447,7 @@ describe('resolveModule', () => {
445447
});
446448

447449
it('custom resolver can resolve node modules', () => {
448-
userResolver.mockImplementation(() => 'module');
450+
mockUserResolver.mockImplementation(() => 'module');
449451

450452
const moduleMap = ModuleMap.create('/');
451453
const resolver = new Resolver(moduleMap, {
@@ -455,8 +457,8 @@ describe('resolveModule', () => {
455457
const src = require.resolve('../');
456458
resolver.resolveModule(src, 'fs');
457459

458-
expect(userResolver).toHaveBeenCalled();
459-
expect(userResolver.mock.calls[0][0]).toBe('fs');
460+
expect(mockUserResolver).toHaveBeenCalled();
461+
expect(mockUserResolver.mock.calls[0][0]).toBe('fs');
460462
});
461463
});
462464

@@ -559,7 +561,7 @@ describe('resolveModuleAsync', () => {
559561

560562
describe('getMockModule', () => {
561563
it('is possible to use custom resolver to resolve deps inside mock modules with moduleNameMapper', () => {
562-
userResolver.mockImplementation(() => 'module');
564+
mockUserResolver.mockImplementation(() => 'module');
563565

564566
const moduleMap = ModuleMap.create('/');
565567
const resolver = new Resolver(moduleMap, {
@@ -575,9 +577,9 @@ describe('getMockModule', () => {
575577
const src = require.resolve('../');
576578
resolver.getMockModule(src, 'dependentModule');
577579

578-
expect(userResolver).toHaveBeenCalled();
579-
expect(userResolver.mock.calls[0][0]).toBe('dependentModule');
580-
expect(userResolver.mock.calls[0][1]).toHaveProperty(
580+
expect(mockUserResolver).toHaveBeenCalled();
581+
expect(mockUserResolver.mock.calls[0][0]).toBe('dependentModule');
582+
expect(mockUserResolver.mock.calls[0][1]).toHaveProperty(
581583
'basedir',
582584
path.dirname(src),
583585
);
@@ -586,7 +588,7 @@ describe('getMockModule', () => {
586588

587589
describe('getMockModuleAsync', () => {
588590
it('is possible to use custom resolver to resolve deps inside mock modules with moduleNameMapper', async () => {
589-
userResolverAsync.async.mockImplementation(() => Promise.resolve('module'));
591+
mockUserResolverAsync.async.mockResolvedValue('module');
590592

591593
const moduleMap = ModuleMap.create('/');
592594
const resolver = new Resolver(moduleMap, {
@@ -603,9 +605,11 @@ describe('getMockModuleAsync', () => {
603605

604606
await resolver.resolveModuleAsync(src, 'dependentModule');
605607

606-
expect(userResolverAsync.async).toHaveBeenCalled();
607-
expect(userResolverAsync.async.mock.calls[0][0]).toBe('dependentModule');
608-
expect(userResolverAsync.async.mock.calls[0][1]).toHaveProperty(
608+
expect(mockUserResolverAsync.async).toHaveBeenCalled();
609+
expect(mockUserResolverAsync.async.mock.calls[0][0]).toBe(
610+
'dependentModule',
611+
);
612+
expect(mockUserResolverAsync.async.mock.calls[0][1]).toHaveProperty(
609613
'basedir',
610614
path.dirname(src),
611615
);

packages/jest-snapshot/src/__tests__/InlineSnapshots.test.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ jest.mock('prettier', () => {
3030
return mockPrettier;
3131
});
3232

33-
let dir;
33+
let dir: string;
3434
beforeEach(() => {
35-
(prettier.resolveConfig.sync as jest.Mock).mockReset();
35+
jest.mocked(prettier.resolveConfig.sync).mockReset();
3636
});
3737

3838
beforeEach(() => {
@@ -262,7 +262,7 @@ test.each([['babel'], ['flow'], ['typescript']])(
262262
const filename = path.join(dir, 'my.test.js');
263263
fs.writeFileSync(filename, 'expect(1).toMatchInlineSnapshot(`2`);\n');
264264

265-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({parser});
265+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({parser});
266266

267267
saveInlineSnapshots(
268268
[
@@ -275,7 +275,7 @@ test.each([['babel'], ['flow'], ['typescript']])(
275275
);
276276

277277
expect(
278-
(prettier.resolveConfig.sync as jest.Mock).mock.results[0].value,
278+
jest.mocked(prettier.resolveConfig.sync).mock.results[0].value,
279279
).toEqual({parser});
280280

281281
expect(fs.readFileSync(filename, 'utf-8')).toBe(
@@ -381,7 +381,7 @@ test('saveInlineSnapshots() uses escaped backticks', () => {
381381
test('saveInlineSnapshots() works with non-literals in expect call', () => {
382382
const filename = path.join(dir, 'my.test.js');
383383
fs.writeFileSync(filename, "expect({a: 'a'}).toMatchInlineSnapshot();\n");
384-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({
384+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({
385385
bracketSpacing: false,
386386
singleQuote: true,
387387
});
@@ -409,7 +409,7 @@ test('saveInlineSnapshots() indents multi-line snapshots with spaces', () => {
409409
" expect({a: 'a'}).toMatchInlineSnapshot();\n" +
410410
'});\n',
411411
);
412-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({
412+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({
413413
bracketSpacing: false,
414414
singleQuote: true,
415415
});
@@ -451,7 +451,7 @@ test('saveInlineSnapshots() does not re-indent error snapshots', () => {
451451
" expect({a: 'a'}).toMatchInlineSnapshot();\n" +
452452
'});\n',
453453
);
454-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({
454+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({
455455
bracketSpacing: false,
456456
singleQuote: true,
457457
});
@@ -500,7 +500,7 @@ test('saveInlineSnapshots() does not re-indent already indented snapshots', () =
500500
' `);\n' +
501501
'});\n',
502502
);
503-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({
503+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({
504504
bracketSpacing: false,
505505
singleQuote: true,
506506
});
@@ -541,7 +541,7 @@ test('saveInlineSnapshots() indents multi-line snapshots with tabs', () => {
541541
" expect({a: 'a'}).toMatchInlineSnapshot();\n" +
542542
'});\n',
543543
);
544-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({
544+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({
545545
bracketSpacing: false,
546546
singleQuote: true,
547547
useTabs: true,
@@ -574,7 +574,7 @@ test('saveInlineSnapshots() indents snapshots after prettier reformats', () => {
574574
filename,
575575
"it('is a test', () => expect({a: 'a'}).toMatchInlineSnapshot());\n",
576576
);
577-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({
577+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({
578578
bracketSpacing: false,
579579
singleQuote: true,
580580
});
@@ -605,7 +605,7 @@ test('saveInlineSnapshots() does not indent empty lines', () => {
605605
filename,
606606
"it('is a test', () => expect(`hello\n\nworld`).toMatchInlineSnapshot());\n",
607607
);
608-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({
608+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({
609609
bracketSpacing: false,
610610
singleQuote: true,
611611
});
@@ -639,7 +639,7 @@ test('saveInlineSnapshots() indents awaited snapshots with spaces', () => {
639639
' await expect(a).resolves.toMatchInlineSnapshot();\n' +
640640
'});\n',
641641
);
642-
(prettier.resolveConfig.sync as jest.Mock).mockReturnValue({
642+
jest.mocked(prettier.resolveConfig.sync).mockReturnValue({
643643
bracketSpacing: false,
644644
singleQuote: true,
645645
});

0 commit comments

Comments
 (0)