-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Open
Labels
Description
Describe the bug
In vitest@3 TS is not complaining but in vitest@4 TS doesn't recognise .mockImplementation()/.mockResolvedValue()/etc. on vi.mocked() class's static methods.
(tests are passing, it's just TS that is not happy)
// Foo.ts
export class Foo {
public static getBar(): string {
return 'bar';
}
}// Foo.test.ts
import { vi, test, expect } from 'vitest';
import { Foo } from './Foo.js';
vi.mock('./Foo');
const mockedFoo = vi.mocked(Foo, { partial: true });
test('test', () => {
mockedFoo.getBar.mockImplementation(() => 'mocked bar');
expect(mockedFoo.getBar()).toBe('mocked bar');
}); error TS2339: Property 'mockImplementation' does not exist on type ...
Reproduction
System Info
System:
OS: Linux 5.0 undefined
CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 0 Bytes / 0 Bytes
Shell: 1.0 - /bin/jsh
Binaries:
Node: 20.19.1 - /usr/local/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 10.8.2 - /usr/local/bin/npm
pnpm: 8.15.6 - /usr/local/bin/pnpm
npmPackages:
vite: ^7.2.6 => 7.2.6
vitest: ^4.0.15 => 4.0.15Used Package Manager
npm
Validations
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
- The provided reproduction is a minimal reproducible example of the bug.